https://github.com/kislyuk/httpnext
Next Generation HTTP for Python
https://github.com/kislyuk/httpnext
Last synced: 3 months ago
JSON representation
Next Generation HTTP for Python
- Host: GitHub
- URL: https://github.com/kislyuk/httpnext
- Owner: kislyuk
- License: apache-2.0
- Created: 2014-08-04T15:35:00.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2015-03-14T23:13:39.000Z (about 10 years ago)
- Last Synced: 2025-01-17T17:59:45.083Z (5 months ago)
- Language: Python
- Homepage: https://httpnext.readthedocs.org/
- Size: 344 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: Changes.rst
- License: LICENSE
Awesome Lists containing this project
README
**Warning: This is a work in progress. It's not ready for general use yet.**
```
conn = httpnext.HTTPConnection("www.python.org")
conn.request("GET", "/index.html")
r1 = conn.getresponse()
print(r1.status, r1.reason)
while not r1.closed:
print(r1.read(200))
```* [RFC7230 - HTTP/1.1: Message Syntax and Routing - low-level message parsing and connection management](http://tools.ietf.org/html/rfc7230)
* [RFC7231 - HTTP/1.1: Semantics and Content - methods, status codes and headers](http://tools.ietf.org/html/rfc7231)
* [RFC7232 - HTTP/1.1: Conditional Requests - e.g., If-Modified-Since](http://tools.ietf.org/html/rfc7232)
* [RFC7233 - HTTP/1.1: Range Requests - getting partial content](http://tools.ietf.org/html/rfc7233)
* [RFC7234 - HTTP/1.1: Caching - browser and intermediary caches](http://tools.ietf.org/html/rfc7234)
* [RFC7235 - HTTP/1.1: Authentication - a framework for HTTP authentication](http://tools.ietf.org/html/rfc7235)* https://github.com/KeepSafe/aiohttp/blob/master/aiohttp/client.py
* https://github.com/python/cpython/blob/master/Lib/http/client.py
* https://github.com/joyent/node/blob/master/lib/_http_client.js
* https://github.com/lukasa/hyper - SPDY, HTTP2
* https://idea.popcount.org/2014-04-03-bind-before-connect/# Features
* Early error support ([HTTP/1.1 8.2.3](http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3) `Expect: 100-continue`)
* Mid-stream error support
* Chunked i/o, event support
* Zero-length chunk keepalive
* asyncio.IncompleReadError.expected is the total expected size, not the remaining size
* HTTP parsing without establishing a connection
* Incremental HTTP parsing
* Raw socket control
* backpressure tests
* Perf regression tests
* Defined extensibility strategy, mixins/plugins
* pyOpenSSL integration