anchor.diff:  %
   %The upgrade header contains the list of protocols the
   %client wishes to upgrade to, in order of preference. (RFC7230 6.7)
  -%
  -%upgrade_safely_ignored(Config) ->
  -%The upgrade header can be safely ignored. (RFC7230 6.7)
  -%
  +
  +upgrade_safely_ignored(Config) ->
  +	doc("The upgrade header can be safely ignored. (RFC7230 6.7)"),
  +	#{code := 200} = do_raw(Config,
  +		"GET / HTTP/1.1\r\n"
  +		"Host: localhost\r\n"
  +		"Connection: upgrade\r\n"
  +		"Upgrade: websocket\r\n"
  +		"\r\n").
  +
   %upgrade_must_be_in_connection_header(Config) ->
   %The upgrade header must be listed under the connection header,
   %or must be ignored otherwise. (RFC7230 6.7)
  
positive.code: %
  %The upgrade header field cannot be used for switching the
  %connection protocol (e.g. TCP) or switching connections. (RFC7230 6.7)
  %
  %%% Compatibility.
  %
  %@todo
  %A server can choose to be non-conformant to the specifications
  %for the sake of compatibility. Such behavior can be enabled
  
negative.code: %The lack of a TE header or an empty TE header means only "chunked"
  %(with no trailers) or no transfer-encoding is acceptable. (RFC7230 4.3)
  %
  %@todo
  %Trailer headers must be listed in the trailer header field value. (RFC7230 4.4)
  
  %% Upgrade.
  
  %```
  %Upgrade = 1#protocol
  %
  