Protocol::HTTP1::BadRequestnow includesProtocol::HTTP::BadRequestfor better interoperability and handling of bad request errors across different HTTP protocol implementations.
- Indicate trailers from chunked body for better validation by
Protocol::HTTP::Headers.
- Tidy up implementation of
read_line?to handle line length errors and protocol violations more clearly. - Improve error handling for unexpected connection closures (
Errno::ECONNRESET) inread_line?.
- Add traces provider for
Protocol::HTTP1::Connection.
- Fix connection state handling to allow idempotent response body closing.
- Add
kisatenfuzzing integration for improved security testing.
- Support empty header values in HTTP parsing for better compatibility.
- Support high-byte characters in HTTP headers for improved international compatibility.
- Fix header parsing to handle tab characters between values correctly.
- Complete documentation coverage for all public APIs.
- Enforce one-way transition for persistent connections to prevent invalid state changes.
- Make
authorityheader optional in HTTP requests for improved flexibility.
- Add block/yield interface to
read_requestandread_responsemethods.
- Fix handling of
nillines in HTTP parsing.
- Add configurable maximum line length to prevent denial of service attacks.
- Improve error message clarity and debugging information.
- Separate state machine logic from connection callbacks for better architecture.
- Improve error handling propagation through connection closure.
- Fix connection stream handling when closing response bodies.
- Improve connection state management for better reliability.
- Add connection state tracking for safer connection reuse.
- Add
Body#discardmethod support for improved resource management.
- Improve handling of underlying stream objects for better stability.
- Fix connection persistence handling for
1xxresponses and remainder bodies. - Improve debug output readability by using
.inspectinstead of.dump. - Enhanced request upgrade body handling.
- Restructure error hierarchy for better error handling consistency.
- Fix stream flushing in
write_body_and_closefor proper connection cleanup.
- Add
#hijacked?method to check connection hijack status.
- Add persistent connection handling examples.
- Improve performance by avoiding blocking operations on
eof?checks.
- Add
HTTP/1client and server example implementations.
- Allow external control of persistent connection settings.
- Separate request line and response status line parsing for better maintainability.
- Add support for HTTP interim (informational) responses like
103 Early Hints. - Improve error messages by including
content_lengthin debugging output.
- Add strict validation for
content-lengthand chunk length values.
- Migrate test suite to
Sustesting framework with 100% coverage.
- Handle
IOErrorfor closed streams gracefully. - Improve memory management by removing string ownership model.
- Add early hints server example.
- Improve trailer handling when content length is known in advance.
- Enhanced trailer support with comprehensive test coverage.
- Prefer chunked transfer encoding when possible for better streaming performance.
- Improve error handling when reading chunk length lines.
- Rename "trailers" to "trailer" for HTTP specification compliance.
- Enable
HTTP/1.1connections to write fixed-length message bodies.
- Fix
HTTP/1request parsing example in documentation.
- Implement pessimistic flushing strategy for better performance.
- Add fuzzing infrastructure for security testing.
- Update dependencies to latest compatible versions.
- Improve header and trailer processing logic.
- Update behavior to match new
write_bodysemantics.
- Add comprehensive HTTP trailer support for chunked transfers.
- Simplify chunked encoding implementation.
- Improve handling of
HEADrequests and responses. - Better error handling for incomplete fixed-length message bodies.
- Add RFC-compliant header validation during read and write operations.
- Improve performance with
frozen_string_literals: true.
- Drop support for Ruby 2.3 (end of life).
- Validate that response header values don't contain
CRorLFcharacters.
- Parse HTTP
connectionheader values as case-insensitive per RFC specification.
- Enhanced
Remainderbody implementation with comprehensive test coverage. - Improve HTTP
CONNECTmethod handling for both client and server. - Improve performance by removing array allocation in method arguments.
- Restore Ruby 2.3 compatibility using monkey patches.
- Enhanced test suite with improved memory and file handling utilities.
- Simplify HTTP request line validation logic.
- Improve error handling and recovery for malformed HTTP requests.
- Add automatic HTTP reason phrase generation based on status codes.
- Enhanced connection hijacking support for pooled connections.
- Adopt
Protocol::HTTPBody abstractions for better consistency. - Require callers to handle hijacking for
HTTP/1protocol upgrades. - Add flexible request/response body and upgrade handling.
- Fix WebSocket compatibility issues with Safari browser.
- Return
nilwhen unable to read HTTP request line (connection closed).
- Ensure output streams are properly closed within accept blocks.
- Improve handling of HTTP upgrade request and response message bodies.
- Enhanced support for partial connection hijacking and protocol upgrades.
- Improve error handling throughout the codebase.
- Initial public release of
Protocol::HTTP1. - Low-level
HTTP/1.0andHTTP/1.1protocol implementation. - Support for persistent connections, chunked transfer encoding, and connection upgrades.