draft-ietf-httpbis-alias-proxy-status-03.txt   draft-ietf-httpbis-alias-proxy-status-latest.txt 
HTTP Working Group T. Pauly HTTP Working Group T. Pauly
Internet-Draft Apple, Inc. Internet-Draft Apple, Inc.
Intended status: Standards Track May 10, 2023 Intended status: Standards Track May 26, 2023
Expires: November 11, 2023 Expires: November 27, 2023
HTTP Proxy-Status Parameter for Next-Hop Aliases HTTP Proxy-Status Parameter for Next-Hop Aliases
draft-ietf-httpbis-alias-proxy-status-03 draft-ietf-httpbis-alias-proxy-status-latest
Abstract Abstract
This document defines an HTTP Proxy-Status Parameter that contains a This document defines the "next-hop-aliases" HTTP Proxy-Status
list of aliases and canonical names received over DNS when Parameter. This parameter carries the list of aliases and canonical
establishing a connection to the next hop. names a proxy received during DNS resolution as part establishing a
connection to the next hop.
About This Document About This Document
This note is to be removed before publishing as an RFC. This note is to be removed before publishing as an RFC.
Status information for this document may be found at Status information for this document may be found at
<https://datatracker.ietf.org/doc/draft-ietf-httpbis-alias-proxy- <https://datatracker.ietf.org/doc/draft-ietf-httpbis-alias-proxy-
status/>. status/>.
Discussion of this document takes place on the HTTP Working Group Discussion of this document takes place on the HTTP Working Group
skipping to change at page 1, line 48 skipping to change at page 2, line 4
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 27, 2023.
This Internet-Draft will expire on November 11, 2023.
Copyright Notice Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the Copyright (c) 2023 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 3, line 24 skipping to change at page 3, line 27
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
2. next-hop-aliases Parameter 2. next-hop-aliases Parameter
The "next-hop-aliases" parameter's value is a String The "next-hop-aliases" parameter's value is a String
[STRUCTURED-FIELDS] that contains one or more DNS names in a comma- [STRUCTURED-FIELDS] that contains one or more DNS names in a comma-
separated list. The items in the list include all alias names an separated list. The items in the list include all alias names and
canonical names received in CNAME records [DNS] during the course of canonical names received in CNAME records [DNS] during the course of
resolving the next hop's hostname using DNS, not including the resolving the next hop's hostname using DNS, not including the
original requested hostname itself. The names SHOULD appear in the original requested hostname itself. The names SHOULD appear in the
order in which they were received in DNS. If there are multiple order in which they were received in DNS. If there are multiple
CNAME records in the chain, the first name in the "next-hop-aliases" CNAME records in the chain, the first name in the "next-hop-aliases"
list would be the value in the CNAME record for the original list would be the value in the CNAME record for the original
hostname, and the final name in the "next-hop-aliases" list would be hostname, and the final name in the "next-hop-aliases" list would be
the name that ultimately resolved to one or more addresses. the name that ultimately resolved to one or more addresses.
The list of DNS names in "next-hop-aliases" uses a comma (",") as a The list of DNS names in "next-hop-aliases" uses a comma (",") as a
skipping to change at page 4, line 25 skipping to change at page 4, line 25
use the connection established through the proxy, but need to use the connection established through the proxy, but need to
gracefully handle situations in which this parameter is not present. gracefully handle situations in which this parameter is not present.
The proxy MAY send the empty string ("") as the value of "next-hop- The proxy MAY send the empty string ("") as the value of "next-hop-
aliases" to indicate that no CNAME records were encountered when aliases" to indicate that no CNAME records were encountered when
resolving the next hop's name. resolving the next hop's name.
2.1. Encoding special characters 2.1. Encoding special characters
DNS names commonly just contain alphanumeric characters and hyphens DNS names commonly just contain alphanumeric characters and hyphens
("-"), although they are allowed to contain any character [RFC1035], ("-"), although they are allowed to contain any character ([RFC1035],
Section 3.1, including a comma. To prevent commas or other special Section 3.1), including a comma. To prevent commas or other special
characters in names leading to incorrect parsing, any characters that characters in names leading to incorrect parsing, any characters that
appear in names in this list that do not belong to the set of URI appear in names in this list that do not belong to the set of URI
Unreserved Characters [RFC3986], Section 2.3 MUST be percent-encoded Unreserved Characters ([RFC3986], Section 2.3) MUST be percent-
as defined in [RFC3986], Section 2.1. encoded as defined in [RFC3986], Section 2.1.
For example, consider the DNS name "name,with,commas.example.com". For example, consider the DNS name "name,with,commas.example.com".
This name would be encoded within a "next-hop-aliases" parameter as This name would be encoded within a "next-hop-aliases" parameter as
follows: follows:
Proxy-Status: proxy.example.net; next-hop=2001:db8::1; Proxy-Status: proxy.example.net; next-hop=2001:db8::1;
next-hop-aliases="name%2Cwith%2Ccommas.example.com,service1.example-cdn.com" next-hop-aliases="name%2Cwith%2Ccommas.example.com,service1.example-cdn.com"
It is also possible for a DNS name to include a period character It is also possible for a DNS name to include a period character
(".") within a label, instead of as a label separator. In this case, (".") within a label, instead of as a label separator. In this case,
 End of changes. 7 change blocks. 
13 lines changed or deleted 13 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/