More RFC 9112 (HTTP/1.1) compliance fixups
- Field names are now restricted to alphanumeric + hyphen
- Chunked encoding parsing now properly rejects too large chunks
- Chunked encoding now rejects non-hex chunk size and handles A-F, a-f, 0-9 properly
- The Host field has to be present, but is allowed to have empty value
- Field values are trimmed both front and back, by SP and HTAB only
- Request method is now case sensitive and getCaseSensitiveMethod() has been added
- getMethod() will continue to return lower cased for backwards compatibility until v21.
Performance regression testing
- Performance comparison against the v20.0.0 release shows there is no performance drift. We haven't lost any measurable performance by improving spec. compliance.
Smoke testing on CI
- There is a new smoke test that makes a bunch of different fetch() requests in keep-alive using Deno, checking CRC32 hashes for correctness both for chunked encoding and for fixed length bodies. This test runs on CI automatically on every push along the unit tests. It will be extended with more request types in the near future.