开源项目 h2 使用教程
h2 HTTP/2 State-Machine based protocol implementation 项目地址: https://gitcode.com/gh_mirrors/h21/h2
1. 项目的目录结构及介绍
h2/
├── docs/
│ ├── conf.py
│ ├── index.rst
│ └── ...
├── examples/
│ ├── example1.py
│ ├── example2.py
│ └── ...
├── src/
│ └── h2/
│ ├── connection.py
│ ├── config.py
│ └── ...
├── test/
│ ├── test_connection.py
│ ├── test_config.py
│ └── ...
├── visualizer/
│ ├── visualize.py
│ └── ...
├── .gitignore
├── CHANGELOG.rst
├── LICENSE
├── MANIFEST.in
├── README.rst
├── setup.cfg
├── setup.py
└── tox.ini
目录结构介绍
- docs/: 存放项目的文档文件,包括 Sphinx 配置文件
conf.py
和文档索引文件index.rst
。 - examples/: 存放项目的示例代码,帮助用户理解如何使用 h2 库。
- src/h2/: 存放 h2 库的核心代码,包括连接管理、配置管理等模块。
- test/: 存放项目的测试代码,确保代码的正确性和稳定性。
- visualizer/: 存放用于可视化 h2 协议的工具代码。
- .gitignore: Git 忽略文件列表。
- CHANGELOG.rst: 项目变更日志。
- LICENSE: 项目许可证文件。
- MANIFEST.in: 打包清单文件。
- README.rst: 项目介绍和使用说明。
- setup.cfg: 项目打包配置文件。
- setup.py: 项目安装脚本。
- tox.ini: 用于自动化测试的配置文件。
2. 项目的启动文件介绍
h2 项目没有传统意义上的“启动文件”,因为它是一个库,而不是一个独立的应用程序。用户在使用 h2 库时,通常会直接导入库中的模块并调用相关函数。
例如,用户可以通过以下方式启动 h2 连接:
import h2.connection
import h2.config
config = h2.config.H2Configuration()
conn = h2.connection.H2Connection(config=config)
conn.send_headers(stream_id=1, headers=headers)
conn.send_data(stream_id=1, data=data)
3. 项目的配置文件介绍
h2 项目的配置主要通过 h2.config.H2Configuration
类来完成。用户可以通过实例化该类并传入相关参数来配置 h2 连接。
配置示例
import h2.config
config = h2.config.H2Configuration(
client_side=True, # 设置为客户端模式
header_encoding='utf-8', # 设置头信息的编码
validate_inbound_headers=True, # 启用入站头信息验证
normalize_inbound_headers=True, # 启用入站头信息规范化
max_inbound_frame_size=2**14 # 设置最大入站帧大小
)
配置参数说明
- client_side: 设置为
True
表示客户端模式,False
表示服务器模式。 - header_encoding: 设置头信息的编码格式,默认为
utf-8
。 - validate_inbound_headers: 是否启用入站头信息验证,默认为
True
。 - normalize_inbound_headers: 是否启用入站头信息规范化,默认为
True
。 - max_inbound_frame_size: 设置最大入站帧大小,默认为
2**14
。
通过以上配置,用户可以根据自己的需求定制 h2 连接的行为。
h2 HTTP/2 State-Machine based protocol implementation 项目地址: https://gitcode.com/gh_mirrors/h21/h2