HPACK

HTTP/2 的标头压缩。(Header Compression for HTTP/2)

  • 所有者: twitter/hpack
  • 平台: BSD, Cross-platform, Linux, Mac, Solaris, Windows
  • 許可證: Apache License 2.0
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

HPACK

HTTP/2 的标题压缩

下载

HPACK 可以从 Maven 中央存储库下载 。将以下依赖项部分添加到您的 pom.xml 文件中:

<dependency>
    <groupId>com.twitter</groupId>
    <artifactId>hpack</artifactId>
    <version>1.0.1</version>
</dependency>

入门

该库支持将标题列表压缩为标题块。 以下代码片段演示了 Encoder 和 Decoder 的用法:

  try {
  int maxHeaderSize = 4096;
  int maxHeaderTableSize = 4096;
  byte [] name =“name”.getBytes();
  byte [] value =“value”.getBytes();
  boolean sensitive = false;

  ByteArrayOutputStream out = new ByteArrayOutputStream();

  //将头部列表编码到头部块中
  Encoder encoder = new Encoder(maxHeaderTableSize);
  encoder.encodeHeader(out, name, value, sensitive);

  ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
  HeaderListener listener = new HeaderListener(){
    @Override
    public void addHeader(byte[] name, byte[] value, boolean sensitive) {
      //处理标题字段
    }
  };
  //从头文件块解码头文件列表
  Decoder decoder = new Decoder(maxHeaderSize, maxHeaderTableSize);
  decoder.decode(in, listener);
decoder.endHeaderBlock(); } catch(IOException e){ //处理异常 }

问题?

如果您发现任何问题,请报告它们,或者最好是发送 拉取请求

作者

许可证

版权所有2013 Twitter,Inc。

根据Apache许可证版本2.0获得许可: http://www.apache.org/licenses/LICENSE-2.0

(The first version translated by vz on 2020.08.02)

主要指標

概覽
名稱與所有者twitter/hpack
主編程語言Java
編程語言Java (語言數: 1)
平台BSD, Cross-platform, Linux, Mac, Solaris, Windows
許可證Apache License 2.0
所有者活动
創建於2013-12-20 20:52:48
推送於2023-04-10 11:35:45
最后一次提交2019-06-06 17:45:59
發布數13
最新版本名稱hpack-parent-1.0.2 (發布於 2016-03-24 14:46:46)
第一版名稱v0.5.2 (發布於 2014-01-07 12:54:32)
用户参与
星數198
關注者數121
派生數60
提交數63
已啟用問題?
問題數15
打開的問題數6
拉請求數7
打開的拉請求數7
關閉的拉請求數13
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?

HPACK Build Status Coverage Status

Header Compression for HTTP/2

Download

HPACK can be downloaded from the Maven central repository. Add the following dependency section to your pom.xml file:

<dependency>
    <groupId>com.twitter</groupId>
    <artifactId>hpack</artifactId>
    <version>1.0.1</version>
</dependency>

Getting Started

This library provides support for compression of header lists into header blocks. The following code fragment demonstrates the use of Encoder and Decoder:

try {
  int maxHeaderSize = 4096;
  int maxHeaderTableSize = 4096;
  byte[] name = "name".getBytes();
  byte[] value = "value".getBytes();
  boolean sensitive = false;

  ByteArrayOutputStream out = new ByteArrayOutputStream();

  // encode header list into header block
  Encoder encoder = new Encoder(maxHeaderTableSize);
  encoder.encodeHeader(out, name, value, sensitive);

  ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());

  HeaderListener listener = new HeaderListener() {
    @Override
    public void addHeader(byte[] name, byte[] value, boolean sensitive) {
      // handle header field
    }
  };

  // decode header list from header block
  Decoder decoder = new Decoder(maxHeaderSize, maxHeaderTableSize);
  decoder.decode(in, listener);
  decoder.endHeaderBlock();
} catch (IOException e) {
  // handle exception
}

Problems?

If you find any issues please report them or better,
send a pull request.

Authors

License

Copyright 2013 Twitter, Inc.

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0