Internet Assigned Numbers Authority

                                                   Hypertext Transfer Protocol (HTTP) Proxy-Status

   Created
   2021-10-22

   Last Updated
   2024-03-25

   Available Formats
   [IMG]
   XML [IMG]
   HTML [IMG]
   Plain text

   Registries included below

     • HTTP Proxy-Status Parameters
     • HTTP Proxy Error Types

HTTP Proxy-Status Parameters

   Registration Procedure(s)

 Expert Review

   Expert(s)

 Mark Nottingham

   Reference
   [RFC9209]

   Note

 New Proxy-Status parameters and proxy error types, along with changes
 to existing ones, can be requested using the [registry interface] or
 the ietf-http-wg@w3.org mailing list.


   Available Formats
   [IMG]
   CSV

         Name                                                            Description                                                      Reference
   error            The error parameter's value is a Token that is a proxy error type. When present, it indicates that the intermediary   [RFC9209]
                    encountered an issue when obtaining this response.
   next-hop         The next-hop parameter's value is a String or Token that identifies the intermediary or origin server selected (and   [RFC9209]
                    used, if contacted) to obtain this response. It might be a hostname, IP address, or alias.
   next-protocol    The next-protocol parameter's value indicates the Application-Layer Protocol Negotiation (ALPN) protocol identifier   [RFC9209]
                    [RFC7301] of the protocol used by the intermediary to connect to the next hop when obtaining this response.
   received-status  The received-status parameter's value indicates the HTTP status code that the intermediary received from the next-hop [RFC9209]
                    server when obtaining this response.
   details          The details parameter's value is a String containing additional information not captured anywhere else. This can      [RFC9209]
                    include implementation-specific or deployment-specific information.
   next-hop-aliases A string containing one or more DNS aliases or canonical names used to establish a proxied connection to the next     [RFC9532]
                    hop.

HTTP Proxy Error Types

   Registration Procedure(s)

 Expert Review

   Expert(s)

 Mark Nottingham

   Reference
   [RFC9209]

   Note

 New Proxy-Status parameters and proxy error types, along with changes
 to existing ones, can be requested using the [registry interface] or
 the ietf-http-wg@w3.org mailing list.


   Available Formats
   [IMG]
   CSV

                                                                                          Recommended Response Only
                  Name                       Description            Extra Parameters      HTTP Status  Generated by  Reference        Notes
                                                                                             Code     Intermediaries
                                      The intermediary
                                      encountered a timeout
   dns_timeout                        when trying to find an IP None                      504         true           [RFC9209]
                                      address for the next-hop
                                      hostname.
                                                                - rcode: A String
                                                                conveying the DNS RCODE
                                      The intermediary          that indicates the error
                                      encountered a DNS error   type. See [RFC9499],
   dns_error                          when trying to find an IP Section 3.                502         true           [RFC9209]
                                      address for the next-hop
                                      hostname.                 - info-code: An Integer
                                                                conveying the Extended
                                                                DNS Error Code INFO-CODE.
                                                                See [RFC8914].
                                      The intermediary cannot
                                      determine the appropriate
                                      next hop to use for this
                                      request; for example, it
                                      may not be configured.
                                      Note that this error is
   destination_not_found              specific to gateways,     None                      500         true           [RFC9209]
                                      which typically require
                                      specific configuration to
                                      identify the "backend"
                                      server; forward proxies
                                      use in-band information
                                      to identify the origin
                                      server.
                                      The intermediary
                                      considers the next hop to
                                      be unavailable; e.g.,
   destination_unavailable            recent attempts to        None                      503         true           [RFC9209]
                                      communicate with it may
                                      have failed, or a health
                                      check may indicate that
                                      it is down.
                                      The intermediary is
   destination_ip_prohibited          configured to prohibit    None                      502         true           [RFC9209]
                                      connections to the
                                      next-hop IP address.
                                      The intermediary cannot
   destination_ip_unroutable          find a route to the       None                      502         true           [RFC9209]
                                      next-hop IP address.
                                      The intermediary's
   connection_refused                 connection to the next    None                      502         true           [RFC9209]
                                      hop was refused.
                                      The intermediary's
                                      connection to the next
   connection_terminated              hop was closed before a   None                      502         false          [RFC9209]
                                      complete response was
                                      received.
                                      The intermediary's
   connection_timeout                 attempt to open a         None                      504         true           [RFC9209]
                                      connection to the next
                                      hop timed out.
                                      The intermediary was
                                      expecting data on a
   connection_read_timeout            connection (e.g., part of None                      504         false          [RFC9209]
                                      a response) but did not
                                      receive any new data in a
                                      configured time limit.
                                      The intermediary was
                                      attempting to write data
   connection_write_timeout           to a connection but was   None                      504         false          [RFC9209]
                                      not able to (e.g.,
                                      because its buffers were
                                      full).
                                      The intermediary is
                                      configured to limit the
   connection_limit_reached           number of connections it  None                      503         true           [RFC9209]
                                      has to the next hop, and
                                      that limit has been
                                      exceeded.
                                      The intermediary
                                      encountered a TLS error                                                                  Not appropriate when
   tls_protocol_error                 when communicating with   None                      502         false          [RFC9209] a TLS alert is
                                      the next hop, either                                                                     received; see
                                      during the handshake or                                                                  tls_alert_received.
                                      afterwards.
                                      The intermediary
                                      encountered an error when
   tls_certificate_error              verifying the certificate None                      502         true           [RFC9209]
                                      presented by the next
                                      hop.
                                                                - alert-id: An Integer
                                                                containing the applicable
                                                                value from the [TLS
                                                                Alerts registry]. See
                                      The intermediary received [RFC8446].
   tls_alert_received                 a TLS alert from the next                           502         false          [RFC9209]
                                      hop.                      - alert-message: A Token
                                                                or String containing the
                                                                applicable description
                                                                string from the [TLS
                                                                Alerts registry]. See
                                                                [RFC8446].
                                      The intermediary is
                                      generating a client (4xx) - status-code: An Integer                                      This type helps
                                      response on the origin's  containing the generated  The                                  distinguish between
                                      behalf. Applicable status status code.              applicable                           responses generated
   http_request_error                 codes include (but are                              4xx status  true           [RFC9209] by intermediaries
                                      not limited to) 400, 403, - status-phrase: A String code                                 from those generated
                                      405, 406, 408, 411, 413,  containing the generated                                       by the origin.
                                      414, 415, 416, 417, and   status phrase.
                                      429.
                                      The intermediary rejected
                                      the HTTP request based on
   http_request_denied                its configuration and/or  None                      403         true           [RFC9209]
                                      policy settings. The
                                      request wasn't forwarded
                                      to the next hop.
                                      The intermediary received
   http_response_incomplete           an incomplete response to None                      502         false          [RFC9209]
                                      the request from the next
                                      hop.
                                                                - header-section-size: An
                                                                Integer indicating how
                                      The intermediary received large the received
                                      a response to the request headers were. Note that
   http_response_header_section_size  whose header section was  they might not be         502         false          [RFC9209]
                                      considered too large.     complete; i.e., the
                                                                intermediary may have
                                                                discarded or refused
                                                                additional data.
                                                                - header-name: A String
                                                                indicating the name of
                                      The intermediary received the header field that
                                      a response to the request triggered the error.
   http_response_header_size          containing an individual                            502         false          [RFC9209]
                                      header field line that    - header-size: An Integer
                                      was considered too large. indicating the size of
                                                                the header field that
                                                                triggered the error.
                                                                - body-size: An Integer
                                                                indicating how large the
                                      The intermediary received received body was. Note
   http_response_body_size            a response to the request that it may not have been 502         false          [RFC9209]
                                      whose body was considered complete; i.e., the
                                      too large.                intermediary may have
                                                                discarded or refused
                                                                additional data.
                                                                - trailer-section-size:
                                                                An Integer indicating how
                                      The intermediary received large the received
                                      a response to the request trailers were. Note that
   http_response_trailer_section_size whose trailer section was they might not be         502         false          [RFC9209]
                                      considered too large.     complete; i.e., the
                                                                intermediary may have
                                                                discarded or refused
                                                                additional data.
                                                                - trailer-name: A String
                                                                indicating the name of
                                      The intermediary received the trailer field that
                                      a response to the request triggered the error.
   http_response_trailer_size         containing an individual                            502         false          [RFC9209]
                                      trailer field line that   - trailer-size: An
                                      was considered too large. Integer indicating the
                                                                size of the trailer field
                                                                that triggered the error.
                                                                - coding: A Token
                                      The intermediary          containing the specific
   http_response_transfer_coding      encountered an error      coding (from the [HTTP    502         false          [RFC9209]
                                      decoding the transfer     Transfer Coding
                                      coding of the response.   Registry]) that caused
                                                                the error.
                                      The intermediary          - coding: A Token
                                      encountered an error      containing the specific
   http_response_content_coding       decoding the content      coding (from the [HTTP    502         false          [RFC9209]
                                      coding of the response.   Content Coding Registry])
                                                                that caused the error.
                                      The intermediary reached
   http_response_timeout              a configured time limit   None                      504         false          [RFC9209]
                                      waiting for the complete
                                      response.
                                      The process of
                                      negotiating an upgrade of
   http_upgrade_failed                the HTTP version between  None                      502         true           [RFC9209]
                                      the intermediary and the
                                      next hop failed.
                                      The intermediary
                                      encountered an HTTP
                                      protocol error when
   http_protocol_error                communicating with the    None                      502         false          [RFC9209]
                                      next hop. This error
                                      should only be used when
                                      a more specific one is
                                      not defined.
                                      The intermediary                                    The most
                                      generated the response                              appropriate
   proxy_internal_response            itself without attempting None                      status code true           [RFC9209]
                                      to connect to the next                              for the
                                      hop.                                                response
                                      The intermediary
   proxy_internal_error               encountered an internal   None                      500         true           [RFC9209]
                                      error unrelated to the
                                      origin.
                                      The intermediary
   proxy_configuration_error          encountered an error      None                      500         true           [RFC9209]
                                      regarding its
                                      configuration.
                                      The intermediary tried to
                                      forward the request to
   proxy_loop_detected                itself, or a loop has     None                      502         true           [RFC9209]
                                      been detected using
                                      different means (e.g.,
                                      [RFC8586]).

   Licensing Terms