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