On Tue, 28 Oct 2025 14:32:43 GMT, Daisuke Yamazaki <[email protected]> wrote:
> 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 > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai). This pull request has been closed without being integrated. ------------- PR: https://git.openjdk.org/jdk/pull/28021
