> Hi all,
> 
> [JEP 408](https://openjdk.org/jeps/408) introduced the Simple Web Server in 
> Java 18, providing a minimal webserver for serving static files over HTTP.
> 
> [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-range-requests) 
> defines "Range Requests" as an optional feature that allows clients to 
> request a subset of a resource's content. Supporting Range requests in the 
> context of JDK's Simple Web Server means enabling the server to serve only 
> the requested portion of a static file.
> 
> This change contains:
> 
> 1. Enhances `sun.net.httpserver.simpleserver.FileServerHandler` in the 
> `jdk.httpserver` module to support `Range` and `If-Range` headers.
> 2. Calculates an `ETag` for each resource based on its last-modified date and 
> file size and sends it to the client on demand for use with the `If-Range` 
> header.
> 3. Returns the `Accept-Ranges` header for all file retrievals, and 
> `Content-Range` when a client requests a specific range.
> 4. Adds a new constant `HTTP_RANGE_NOT_SATISFIABLE` to the `Codes` class to 
> indicate invalid ranges.
> 5. Returns `206 Partial Content` for valid ranges and `416 Range Not 
> Satisfiable` for invalid ranges.
> 6. Includes corresponding tests to verify correct behavior.
> 
> This enhancement was motivated by recent discussions on the net-dev mailing 
> list, which requested support for Range requests along with example use 
> cases: https://mail.openjdk.org/pipermail/net-dev/2025-April/026364.html
> It was also discussed briefly on the net-dev mailing list: 
> https://mail.openjdk.org/pipermail/net-dev/2025-October/028586.html

Peyang has updated the pull request with a new target base due to a merge or a 
rebase. The pull request now contains 30 commits:

 - Merge branch 'master' into 8355572-support-http-range-header
 - Fix HTTP Range header test case for invalid range format
 - Add test case for duplicate and overlapping HTTP Range headers
   
   Co-authored-by: Daniel Fuchs <[email protected]>
 - Replace IOException with EOFException for unexpected EOF in FileServerHandler
 - Throw IOException on unexpected EOF while reading file in FileServerHandler
 - Implement range normalization for overlapping and contiguous HTTP Range 
headers
 - Add additional test cases for invalid HTTP Range header formats
 - Refactor parsing of HTTP Range header to remove radix specification in 
Long.parseLong calls
 - Add assertion to ensure end range value valid in HTTP Range header processing
 - Allow unlimited splits when parsing HTTP Range header to detect trailing 
commas
 - ... and 20 more: https://git.openjdk.org/jdk/compare/f510b4a3...082a76dc

-------------

Changes: https://git.openjdk.org/jdk/pull/28021/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28021&range=13
  Stats: 435 lines in 6 files changed: 423 ins; 9 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/28021.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28021/head:pull/28021

PR: https://git.openjdk.org/jdk/pull/28021

Reply via email to