diff --git a/framework-docs/modules/ROOT/pages/web/webmvc/filters.adoc b/framework-docs/modules/ROOT/pages/web/webmvc/filters.adoc index c6097bb03d5d..8851bc74c24a 100644 --- a/framework-docs/modules/ROOT/pages/web/webmvc/filters.adoc +++ b/framework-docs/modules/ROOT/pages/web/webmvc/filters.adoc @@ -69,9 +69,10 @@ written to the response and computing an MD5 hash from it. The next time a clien it does the same, but it also compares the computed value against the `If-None-Match` request header and, if the two are equal, returns a 304 (NOT_MODIFIED). -This strategy saves network bandwidth but not CPU, as the full response must be computed -for each request. Other strategies at the controller level, described earlier, can avoid -the computation. See xref:web/webmvc/mvc-caching.adoc[HTTP Caching]. +This strategy saves network bandwidth but not CPU, as the full response must be computed for each request. +State-changing HTTP methods and other HTTP conditional request headers such as `If-Match` and `If-Unmodified-Since` are outside the scope of this filter. +Other strategies at the controller level can avoid the computation and have a broader support for HTTP conditional requests. +See xref:web/webmvc/mvc-caching.adoc[HTTP Caching]. This filter has a `writeWeakETag` parameter that configures the filter to write weak ETags similar to the following: `W/"02a2d595e6ed9a0b24f027f2b63b134d6"` (as defined in diff --git a/spring-web/src/main/java/org/springframework/web/filter/ShallowEtagHeaderFilter.java b/spring-web/src/main/java/org/springframework/web/filter/ShallowEtagHeaderFilter.java index b1e851a929d7..a5dd68ac39f6 100644 --- a/spring-web/src/main/java/org/springframework/web/filter/ShallowEtagHeaderFilter.java +++ b/spring-web/src/main/java/org/springframework/web/filter/ShallowEtagHeaderFilter.java @@ -46,6 +46,10 @@ * (e.g. a {@link org.springframework.web.servlet.View}) is still rendered. * As such, this filter only saves bandwidth, not server performance. * + *

State-changing HTTP methods and other HTTP conditional request headers such as + * {@code If-Match} and {@code If-Unmodified-Since} are outside the scope of this filter. + * Please consider using {@link ServletWebRequest#checkNotModified(String, long)} instead. + * * @author Arjen Poutsma * @author Rossen Stoyanchev * @author Brian Clozel