diff --git a/framework-docs/modules/ROOT/nav.adoc b/framework-docs/modules/ROOT/nav.adoc index a34c38e8f50..7d8e6903e15 100644 --- a/framework-docs/modules/ROOT/nav.adoc +++ b/framework-docs/modules/ROOT/nav.adoc @@ -197,6 +197,7 @@ *** xref:web/webmvc-functional.adoc[] *** xref:web/webmvc/mvc-uri-building.adoc[] *** xref:web/webmvc/mvc-ann-async.adoc[] +*** xref:web/webmvc/mvc-range.adoc[] *** xref:web/webmvc-cors.adoc[] *** xref:web/webmvc-versioning.adoc[] *** xref:web/webmvc/mvc-ann-rest-exceptions.adoc[] @@ -294,6 +295,7 @@ **** xref:web/webflux/controller/ann-advice.adoc[] *** xref:web/webflux-functional.adoc[] *** xref:web/webflux/uri-building.adoc[] +*** xref:web/webflux/range.adoc[] *** xref:web/webflux-cors.adoc[] *** xref:web/webflux-versioning.adoc[] *** xref:web/webflux/ann-rest-exceptions.adoc[] diff --git a/framework-docs/modules/ROOT/pages/web/webflux/range.adoc b/framework-docs/modules/ROOT/pages/web/webflux/range.adoc new file mode 100644 index 00000000000..7e2d5417ffe --- /dev/null +++ b/framework-docs/modules/ROOT/pages/web/webflux/range.adoc @@ -0,0 +1,20 @@ +[[webflux-range]] += Range Requests +:page-section-summary-toc: 1 + +[.small]#xref:web/webmvc/mvc-range.adoc[See equivalent in the Servlet stack]# + +Spring WebFlux supports https://datatracker.ietf.org/doc/html/rfc9110#section-14[RFC 9110] +range requests. For an overview, see the +https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Range_requests[Ranger Requests] +Mozilla guide. + +The `Range` header is parsed and handled transparently in WebFlux when an annotated +controller returns a `Resource` or `ResponseEntity`, or a functional endpoint +xref:web/webflux-functional.adoc#webflux-fn-resources[serves a `Resource`]. `Range` header +support is also transparently handled when serving +xref:web/webflux/config.adoc#webflux-config-static-resources[static resources]. + +The underlying support is in the `HttpRange` class, which exposes methods to parse +`Range` headers and split a `Resource` into a `List` that in turn can be +then written to the response via `ResourceRegionEncoder` and `ResourceHttpMessageWriter`. \ No newline at end of file diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/mvc-range.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-range.adoc new file mode 100644 index 00000000000..f47c85cb79e --- /dev/null +++ b/framework-docs/modules/ROOT/pages/web/webmvc/mvc-range.adoc @@ -0,0 +1,20 @@ +[[mvc-range]] += Range Requests +:page-section-summary-toc: 1 + +[.small]#xref:web/webflux/range.adoc[See equivalent in the Reactive stack]# + +Spring MVC supports https://datatracker.ietf.org/doc/html/rfc9110#section-14[RFC 9110] +range requests. For an overview, see the +https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Range_requests[Ranger Requests] +Mozilla guide. + +The `Range` header is parsed and handled transparently in Spring MVC when an annotated +controller returns a `Resource` or `ResponseEntity`, or a functional endpoint +xref:web/webmvc-functional.adoc#webmvc-fn-resources[serves a `Resource`]. `Range` header +support is also transparently handled when serving +xref:web/webmvc/mvc-config/static-resources.adoc[static resources]. + +The underlying support is in the `HttpRange` class, which exposes methods to parse +`Range` headers and split a `Resource` into a `List` that in turn can be +then written to the response via `ResourceRegionHttpMessageConverter`. \ No newline at end of file