anchor.diff:  server.start();
   ----
   
  -[NOTE]
  -====
  -To deploy as a WAR to a Servlet 3.1+ container, wrap `HttpHandler` with
  -`ServletHttpHandlerAdapter` and register that as a `Servlet`.
  -This can be automated through the use of
  -{api-spring-framework}/web/server/adapter/AbstractReactiveWebInitializer.html[AbstractReactiveWebInitializer].
  -====
  +*Servlet 3.1+ Container*
  +
  +To deploy as a WAR to any Servlet 3.1+ container, simply extend and include
  +{api-spring-framework}/web/server/adapter/AbstractReactiveWebInitializer.html[AbstractReactiveWebInitializer]
  +in the WAR, which wraps an `HttpHandler` with `ServletHttpHandlerAdapter` and registers
  +that as a `Servlet`.
   
   
   
  
positive.code: fail if the client has disconnected. The send could take the form of an empty
  (comment-only) SSE event, or any other data that the other side would have to interpret as
  a heartbeat and ignore.
  
  
  
  [[webflux-filters]]
  === Filters
  [.small]#<<web.adoc#filters,Same in Spring MVC>>#
  
  In the <<webflux-web-handler-api>>, a `WebFilter` can be used to apply interception-style
  logic before and after the rest of the processing chain of filters and the target
  `WebHandler`. When using the <<webflux-config>>, registering a `WebFilter` is as simple
  as declaring it as a Spring bean, and optionally expressing precedence via `@Order` on
  the bean declaration or by implementing `Ordered`.
  
  The following describe the available `WebFilter` implementations:
  
  
  [[webflux-filters-forwarded-headers]]
  ==== Forwarded Headers
  [.small]#<<web.adoc#filters-forwarded-headers,Same in Spring MVC>>#
  
  As a request goes through proxies such as load balancers the host, port, and
  scheme may change presenting a challenge for applications that need to create links
  to resources since the links should reflect the host, port, and scheme of the
  original request as seen from a client perspective.
  
  https://tools.ietf.org/html/rfc7239[RFC 7239] defines the "Forwarded" HTTP header
  for proxies to use to provide information about the original request. There are also
  other non-standard headers in use such as "X-Forwarded-Host", "X-Forwarded-Port",
  and "X-Forwarded-Proto".
  
  `ForwardedHeaderFilter` detects, extracts, and uses information from the "Forwarded"
  header, or from "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto".
  It wraps the request in order to overlay its host, port, and scheme and also "hides"
  the forwarded headers for subsequent processing.
  
  Note that there are security considerations when using forwarded headers as explained
  in Section 8 of RFC 7239. At the application level it is difficult to determine whether
  forwarded headers can be trusted or not. This is why the network upstream should be
  configured correctly to filter out untrusted forwarded headers from the outside.
  
  Applications that don't have a proxy and don't need to use forwarded headers can
  configure the `ForwardedHeaderFilter` to remove and ignore such headers.
  
  
  [[webflux-filters-cors]]
  ==== CORS
  [.small]#<<web.adoc#filters-cors,Same in Spring MVC>>#
  
  Spring WebFlux provides fine-grained support for CORS configuration through annotations on
  controllers. However when used with Spring Security it is advisable to rely on the built-in
  `CorsFilter` that must be ordered ahead of Spring Security's chain of filters.
  
  See the section on <<webflux-cors>> and the <<webflux-cors-webfilter>> for more details.
  
  
  
  [[webflux-exception-handler]]
  === Exceptions
  [.small]#<<web.adoc#mvc-ann-customer-servlet-container-error-page,Same in Spring MVC>>#
  
  In the <<webflux-web-handler-api>>, a `WebExceptionHandler` can be used to to handle
  exceptions from the chain of ``WebFilter``'s and the target `WebHandler`. When using the
  <<webflux-config>>, registering a `WebExceptionHandler` is as simple as declaring it as a
  Spring bean, and optionally expressing precedence via `@Order` on the bean declaration or
  by implementing `Ordered`.
  
  Below are the available `WebExceptionHandler` implementations:
  
  [cols="1,2", options="header"]
  |===
  | Exception Handler | Description
  
  | `ResponseStatusExceptionHandler`
  | Provides handling for exceptions of type
    {api-spring-framework}/web/server/ResponseStatusException.html[ResponseStatusException]
    by setting the response to the HTTP status code of the exception.
  
  | `WebFluxResponseStatusExceptionHandler`
  | Extension of `ResponseStatusExceptionHandler` that can also determine the HTTP status
    code an `@ResponseStatus` annotation on any exception.
  
    This handler is declared in the <<webflux-config>>.
  
  |===
  
  
  
  
negative.code: | spring-web: Servlet 3.1 non-blocking I/O to Reactive Streams bridge
  |===
  
  Server dependencies (and
  https://github.com/spring-projects/spring-framework/wiki/What%27s-New-in-the-Spring-Framework[supported versions]):
  
  |===
  |Server name|Group id|Artifact name
  