一套框架无关的HTTP协议工具。
项目描述
httptools是nodejs HTTP解析器的Python绑定。
此软件包可在PyPI上获取: pip install httptools
。
APIs
httptools包含两个类 httptools.HttpRequestParser
, httptools.HttpResponseParser
(通过 llhttp 实现),以及一个用于解析URL的函数 httptools.parse_url
(目前通过 http-parse 实现)。请参阅单元测试以获取示例。
class HttpRequestParser:
def __init__(self, protocol):
"""HttpRequestParser
protocol -- a Python object with the following methods
(all optional):
- on_message_begin()
- on_url(url: bytes)
- on_header(name: bytes, value: bytes)
- on_headers_complete()
- on_body(body: bytes)
- on_message_complete()
- on_chunk_header()
- on_chunk_complete()
- on_status(status: bytes)
"""
def get_http_version(self) -> str:
"""Return an HTTP protocol version."""
def should_keep_alive(self) -> bool:
"""Return ``True`` if keep-alive mode is preferred."""
def should_upgrade(self) -> bool:
"""Return ``True`` if the parsed request is a valid Upgrade request.
The method exposes a flag set just before on_headers_complete.
Calling this method earlier will only yield `False`.
"""
def feed_data(self, data: bytes):
"""Feed data to the parser.
Will eventually trigger callbacks on the ``protocol``
object.
On HTTP upgrade, this method will raise an
``HttpParserUpgrade`` exception, with its sole argument
set to the offset of the non-HTTP data in ``data``.
"""
def get_method(self) -> bytes:
"""Return HTTP request method (GET, HEAD, etc)"""
class HttpResponseParser:
"""Has all methods except ``get_method()`` that
HttpRequestParser has."""
def get_status_code(self) -> int:
"""Return the status code of the HTTP response"""
def parse_url(url: bytes):
"""Parse URL strings into a structured Python object.
Returns an instance of ``httptools.URL`` class with the
following attributes:
- schema: bytes
- host: bytes
- port: int
- path: bytes
- query: bytes
- fragment: bytes
- userinfo: bytes
"""
开发
-
使用以下命令克隆此存储库:
git clone --recursive git@github.com:MagicStack/httptools.git
-
使用Python 3创建虚拟环境:
python3 -m venv envname
-
使用以下命令激活环境:
source envname/bin/activate
-
使用
pip install -e .[test]
安装开发需求。 -
运行
make
和make test
。
许可
MIT。
项目详情
下载文件
下载适合您平台的项目文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
httptools-0.6.1.tar.gz (191.2 kB 查看哈希值)
构建分发
httptools-0.6.1-cp39-cp39-win_amd64.whl (60.2 kB 查看哈希)
httptools-0.6.1-cp38-cp38-win_amd64.whl (60.2 kB 查看哈希值)
关闭
httptools-0.6.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c6e26c30455600b95d94b1b836085138e82f177351454ee841c148f93a9bad5a |
|
MD5 | cb8a0c39723c10bdcf8c13d364d60b7c |
|
BLAKE2b-256 | 671dd77686502fced061b3ead1c35a2d70f6b281b5f723c4eff7a2277c04e4a2 |
关闭
httptools-0.6.1-cp312-cp312-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 97662ce7fb196c785344d00d638fc9ad69e18ee4bfb4000b35a52efe5adcc949 |
|
MD5 | 7f686884b638477ed59f71295ef46fa5 |
|
BLAKE2b-256 | d39760860e9ee87a7d4712b98f7e1411730520053b9d69e9e42b0b9751809c17 |
关闭
哈希值 用于 httptools-0.6.1-cp312-cp312-musllinux_1_1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b512aa728bc02354e5ac086ce76c3ce635b62f5fbc32ab7082b5e582d27867bb |
|
MD5 | a87808f32dac131f3157966a0caa6a14 |
|
BLAKE2b-256 | 8001379f6466d8e2edb861c1f44ccac255ed1f8a0d4c5c666a1ceb34caad7555 |
关闭
哈希值 用于 httptools-0.6.1-cp312-cp312-musllinux_1_1_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9bb68d3a085c2174c2477eb3ffe84ae9fb4fde8792edb7bcd09a1d8467e30a84 |
|
MD5 | 6d0f310708e849dbf9b3936cb3840d7e |
|
BLAKE2b-256 | cf3a3fd8dfb987c4247651baf2ac6f28e8e9f889d484ca1a41a9ad0f04dfe300 |
关闭
哈希值 用于 httptools-0.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6f58e335a1402fb5a650e271e8c2d03cfa7cea46ae124649346d17bd30d59c90 |
|
MD5 | 3872c453c6a90ddd342b6503d05bd2f8 |
|
BLAKE2b-256 | d0a4b503851c40f20bcbd453db24ed35d961f62abdae0dccc8f672cd5d350d87 |
关闭
哈希值 用于 httptools-0.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 93ad80d7176aa5788902f207a4e79885f0576134695dfb0fefc15b7a4648d503 |
|
MD5 | afb560824c99a2442a3ecd01987e0ae3 |
|
BLAKE2b-256 | a29aaa406864f3108e06f7320425a528ff8267124dead1fd72a3e9da2067f893 |
关闭
哈希值 用于 httptools-0.6.1-cp312-cp312-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 48ed8129cd9a0d62cf4d1575fcf90fb37e3ff7d5654d3a5814eb3d55f36478c2 |
|
MD5 | a837d709b64dc0ce775c9966c3b8bf29 |
|
BLAKE2b-256 | f85d9ad32b79b6c24524087e78aa3f0a2dfcf58c11c90e090e4593b35def8a86 |
关闭
哈希值 用于 httptools-0.6.1-cp312-cp312-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 75c8022dca7935cba14741a42744eee13ba05db00b27a4b940f0d646bd4d56d0 |
|
MD5 | f45248e00a983714f0ca50b1c5df3811 |
|
BLAKE2b-256 | 6013b62e086b650752adf9094b7e62dab97f4cb7701005664544494b7956a51e |
关闭
哈希值 用于 httptools-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6a4f5ccead6d18ec072ac0b84420e95d27c1cdf5c9f1bc8fbd8daf86bd94f43d |
|
MD5 | 97aaf89c02bd29ff417c1e7b4547f21e |
|
BLAKE2b-256 | e31e9823ca7aab323c0e0e9dd82ce835a6e93b69f69aedffbc94d31e327f4283 |
关闭
哈希值 用于 httptools-0.6.1-cp311-cp311-musllinux_1_1_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4f0f8271c0a4db459f9dc807acd0eadd4839934a4b9b892f6f160e94da309837 |
|
MD5 | 8fdb5e48f2917e88fd4310dd2c29b65c |
|
BLAKE2b-256 | 82f550708abc7965d7d93c0ee14a148ccc6d078a508f47fe9357c79d5360f252 |
关闭
哈希值 用于 httptools-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8b0bb634338334385351a1600a73e558ce619af390c2b38386206ac6a27fecfc |
|
MD5 | f0d174dff164dbcd913a0e0d8fdfc0da |
|
BLAKE2b-256 | 767a45c5a9a2e9d21f7381866eb7b6ead5a84d8fe7e54e35208eeb18320a29b4 |
关闭
哈希值 用于 httptools-0.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7d9ceb2c957320def533671fc9c715a80c47025139c8d1f3797477decbc6edd2 |
|
MD5 | 892c88721f77fadcdc5642073d22f5e3 |
|
BLAKE2b-256 | 5923047a89e66045232fb82c50ae57699e40f70e073ae5ccd53f54e532fbd2a2 |
关闭
哈希值 用于 httptools-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 85ed077c995e942b6f1b07583e4eb0a8d324d418954fc6af913d36db7c05a5a0 |
|
MD5 | 89f09ba132e173adba6a8c30460262f1 |
|
BLAKE2b-256 | 80ddcebc9d4b1d4b70e9f3d40d1db0829a28d57ca139d0b04197713816a11996 |
关闭
哈希值 用于 httptools-0.6.1-cp311-cp311-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7a7ea483c1a4485c71cb5f38be9db078f8b0e8b4c4dc0210f531cdd2ddac1ef1 |
|
MD5 | c8d8138b0cac33f679782f0cebf5fc2e |
|
BLAKE2b-256 | f5d153283b96ed823d5e4d89ee9aa0f29df5a1bdf67f148e061549a595d534e4 |
关闭
哈希值 用于 httptools-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3f30d3ce413088a98b9db71c60a6ada2001a08945cb42dd65a9a9fe228627658 |
|
MD5 | 3ab013b87a5891f3c0cc763d27f476dd |
|
BLAKE2b-256 | 99c953ed7176583ec4b4364d941a08624288f2ae55b4ff58b392cdb68db1e1ed |
关闭
哈希值 用于 httptools-0.6.1-cp310-cp310-musllinux_1_1_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0ac5a0ae3d9f4fe004318d64b8a854edd85ab76cffbf7ef5e32920faef62f142 |
|
MD5 | 38101125e15ad1389c099c5b5e050107 |
|
BLAKE2b-256 | d897b37d596bc32be291477a8912bf9d1508d7e8553aa11a30cd871fd89cbae4 |
关闭
哈希值 用于 httptools-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 639dc4f381a870c9ec860ce5c45921db50205a37cc3334e756269736ff0aac58 |
|
MD5 | 80ab3bca461c4e7c789d5be11baa50f7 |
|
BLAKE2b-256 | 4e746348ce41fb5c1484f35184c172efb8854a288e6090bb54e2210598268369 |
关闭
哈希值 用于 httptools-0.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e57997ac7fb7ee43140cc03664de5f268813a481dff6245e0075925adc6aa185 |
|
MD5 | 5b7ea6b61b0f64d740b78422a0a7a70d |
|
BLAKE2b-256 | 65e7dd5ba95c84047118a363f0755ad78e639e0529be92424bb020496578aa3b |
关闭
哈希值 用于 httptools-0.6.1-cp310-cp310-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 00d5d4b68a717765b1fabfd9ca755bd12bf44105eeb806c03d1962acd9b8e563 |
|
MD5 | 05117e259dbfb881f0ae452531878c49 |
|
BLAKE2b-256 | bd7d4cd75356dfe0ed0b40ca6873646bf9ff7b5138236c72338dc569dc57d509 |
关闭
哈希值 用于 httptools-0.6.1-cp310-cp310-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d2f6c3c4cb1948d912538217838f6e9960bc4a521d7f9b323b3da579cd14532f |
|
MD5 | 488c9a6046c005aaf72526247bb10d28 |
|
BLAKE2b-256 | a96a80bce0216b63babf51cdc34814c3f0f10489e13ab89fb6bc91202736a8a2 |
关闭
哈希值 用于 httptools-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 95658c342529bba4e1d3d2b1a874db16c7cca435e8827422154c9da76ac4e13a |
|
MD5 | ed6b65409fc2fb11105867d90b024f63 |
|
BLAKE2b-256 | 8c0fac82bdc14f5e4bff59a3c3c35fa7a9b7a2f8d983c4d5a33b20e4848b3f14 |
关闭
哈希值 用于 httptools-0.6.1-cp39-cp39-musllinux_1_1_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e0b281cf5a125c35f7f6722b65d8542d2e57331be573e9e88bc8b0115c4a7a81 |
|
MD5 | bd979ae0288f2f23e7cd5e1be00dab5f |
|
BLAKE2b-256 | 59139c253d23e62539922032a967ae06ce16e53c3bba592d4ff63920058f0bbb |
关闭
哈希值 用于 httptools-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0cf2372e98406efb42e93bfe10f2948e467edfd792b015f1b4ecd897903d3e8d |
|
MD5 | df2181f96cead2d7ccc58c80604d3a40 |
|
BLAKE2b-256 | 69450f5014fa50f923599fead11e001e23fb210a1f82dddc1afbf00db20ff4ff |
关闭
哈希值 用于 httptools-0.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 678fcbae74477a17d103b7cae78b74800d795d702083867ce160fc202104d0da |
|
MD5 | 595eff6a1eb184ef00ef12bb84669b80 |
|
BLAKE2b-256 | 7c58d3728a369eaacd125918469c767e4af00326255db29e5e070433d9f40165 |
关闭
哈希值 用于 httptools-0.6.1-cp39-cp39-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dcbab042cc3ef272adc11220517278519adf8f53fd3056d0e68f0a6f891ba94e |
|
MD5 | 67150c3283810437d1ab72394cd2ffe8 |
|
BLAKE2b-256 | 53d3968ab0568634f226ed20d82131c0304550fa2d60088a3699281ea8f4b34d |
关闭
哈希值 用于 httptools-0.6.1-cp39-cp39-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 95fb92dd3649f9cb139e9c56604cc2d7c7bf0fc2e7c8d7fbd58f96e35eddd2a3 |
|
MD5 | 140f632336d653695dedeacecce2f81f |
|
BLAKE2b-256 | 02bae7c6040bd3b5e46c17dcf84c8c667e3e2fb4a1ac7bec92d925fc0a35fb96 |
关闭
哈希值 用于 httptools-0.6.1-cp38-cp38-musllinux_1_1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8ae5b97f690badd2ca27cbf668494ee1b6d34cf1c464271ef7bfa9ca6b83ffaf |
|
MD5 | e4ecab1e9920631466767a02545ecfac |
|
BLAKE2b-256 | 56a9bb66e122917639ea3b419d64e4ab5ec1f9353c3a56cc3dee063260375d47 |
关闭
哈希值 用于 httptools-0.6.1-cp38-cp38-musllinux_1_1_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3c3b214ce057c54675b00108ac42bacf2ab8f85c58e3f324a4e963bbc46424f4 |
|
MD5 | 7fc00dc93c996d3e2508872aeb1429e6 |
|
BLAKE2b-256 | 4cb89494a21832eea0d7429fb1d5948fdf3ea490d7b3fe32fc3d6e63f54b9aed |
关闭
哈希值 用于 httptools-0.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4bd3e488b447046e386a30f07af05f9b38d3d368d1f7b4d8f7e10af85393db97 |
|
MD5 | 92a1896a7790f300453549da5aad9111 |
|
BLAKE2b-256 | a0f8199e857258b4310b439431ec0c34515846dab092e13f945d8852919ac636 |
关闭
哈希值 用于 httptools-0.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fe467eb086d80217b7584e61313ebadc8d187a4d95bb62031b7bab4b205c3ba3 |
|
MD5 | 721b134121b9cb74d87f1eac9bf18244 |
|
BLAKE2b-256 | c84d1e14e818a086ce800a57c5025707ecbc66083921754b77f5e41879e132cd |
关闭
哈希值 用于 httptools-0.6.1-cp38-cp38-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3e802e0b2378ade99cd666b5bffb8b2a7cc8f3d28988685dc300469ea8dd86cb |
|
MD5 | 129a8c2de4eb8ded6a6423ef63b04315 |
|
BLAKE2b-256 | e8f5ec2d069be4f76c63d942e4e35eeebedc3239b6528da17b2dd73d8e076a35 |
关闭
哈希值 用于 httptools-0.6.1-cp38-cp38-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8e216a038d2d52ea13fdd9b9c9c7459fb80d78302b257828285eca1c773b99b3 |
|
MD5 | e68ea558d8811feb4d958992726491e1 |
|
BLAKE2b-256 | 42444b9ff8fd96776e775c1d480f6f8ce6d366e96f49b8df0a361cf000643a6e |