| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-09-17 | 3.0 kB | |
| v2.7.0 source code.tar.gz | 2026-09-17 | 515.8 kB | |
| v2.7.0 source code.zip | 2026-09-17 | 585.0 kB | |
| Totals: 3 Items | 1.1 MB | 0 | |
HTTP v2.7.0
HTTP.jl 2.7.0 adds opt-in request logging and configurable HTTP/1 header limits. It also fixes response reuse, HTTP/2 informational responses, Host ordering, and cookie handling.
Added
HTTP.Handlers.logging_middlewareprovides opt-in request and error logs.HTTP.Transportacceptsmax_line_bytesandmax_header_bytes; the default HTTP/1 line limit is now 64 KiB.setheader!,appendheader!, andremoveheader!are aliases for the existing mutating header functions.- The docs publish
llms.txtandllms-full.txtwith expanded API docstrings.
Fixed
- String response bodies can be reused. New pre-send checks reject spent BytesBody and CallbackBody values; bodyless responses remain valid.
- HTTP/2 accepts informational responses such as 103 Early Hints and correctly handles headers and trailers split across frames.
- HTTP/1 writes Host as the first header field.
- Adding request cookies uses semicolons and preserves separately stored cookie fields.
- Server error handling accepts any thrown Julia value, keeping error responses and access logs consistent.
- The connection pool honors server Keep-Alive timeout hints.
- Cookie Max-Age=0 expires the cookie.
- Per-request TLS configuration uses Reseau's copy constructor.
Julia 1.10 remains the minimum supported version.
Merged pull requests:
- Expire the cookie on Set-Cookie Max-Age=0 (#1357) (@dylanpulver)
- Honor server Keep-Alive timeout hints in the HTTP/1 connection pool (#1358) (@quinnj)
- Add setheader!, appendheader! and removeheader! aliases (#1359) (@quinnj)
- Copy the per-request TLS config through Reseau's keyword copy constructor (#1363) (@quinnj)
- Keep String response bodies reusable and refuse to resend a spent streaming body (#1364) (@quinnj)
- Raise the HTTP/1 line limit to 64 KiB and expose header limits on Transport (#1365) (@quinnj)
- Write Host as the first HTTP/1.1 request header field (#1366) (@quinnj)
- Publish LLM documentation and prepare HTTP 2.7.0 (#1367) (@quinnj)
- Add an opt-in request logging middleware (#1368) (@quinnj)
- Skip informational (1xx) header blocks in the HTTP/2 client (#1369) (@quinnj)
- Join request cookies with "; " instead of the appendheader comma fold (#1370) (@youdie006)
Closed issues:
- HTTP Keep-Alive header should be respected with connection pooling (#1155)
- Missing
!in header-mutating functions (#1277) - Documentation: Baked responses via streamhandler must have Vector{UInt8} bodies (#1333)
- Should HTTP.jl 2.x include a request logging middleware? (#1345)
- feat: llms.txt support (#1351)
- HTTP/2 client treats a 1xx informational response (e.g. 103 Early Hints) as the final response head, then fails with "response trailers must end the stream" (#1360)
- HTTP/1.1 client sends the Host header last; RFC 9112 §3.2 says it should be first (#1361)
- HTTP/1 client rejects response header lines over 8 KiB, with no way to raise the limit (#1362)