HPACK

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

  • Owner: twitter/hpack
  • Platform: BSD, Cross-platform, Linux, Mac, Solaris, Windows
  • License:: Apache License 2.0
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

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)

Main metrics

Overview
Name With Ownertwitter/hpack
Primary LanguageJava
Program languageJava (Language Count: 1)
PlatformBSD, Cross-platform, Linux, Mac, Solaris, Windows
License:Apache License 2.0
所有者活动
Created At2013-12-20 20:52:48
Pushed At2023-04-10 11:35:45
Last Commit At2019-06-06 17:45:59
Release Count13
Last Release Namehpack-parent-1.0.2 (Posted on 2016-03-24 14:46:46)
First Release Namev0.5.2 (Posted on 2014-01-07 12:54:32)
用户参与
Stargazers Count198
Watchers Count121
Fork Count60
Commits Count63
Has Issues Enabled
Issues Count15
Issue Open Count6
Pull Requests Count7
Pull Requests Open Count7
Pull Requests Close Count13
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

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