draft-ietf-httpbis-alias-proxy-status-05.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 June 20, 2023 Intended status: Standards Track September 30, 2023
Expires: December 22, 2023 Expires: April 2, 2024
HTTP Proxy-Status Parameter for Next-Hop Aliases HTTP Proxy-Status Parameter for Next-Hop Aliases
draft-ietf-httpbis-alias-proxy-status-05 draft-ietf-httpbis-alias-proxy-status-latest
Abstract Abstract
This document defines the "next-hop-aliases" HTTP Proxy-Status This document defines the "next-hop-aliases" HTTP Proxy-Status
Parameter. This parameter carries the list of aliases and canonical Parameter. This parameter carries the list of aliases and canonical
names an intermediary received during DNS resolution as part names an intermediary received during DNS resolution as part
establishing a connection to the next hop. establishing a connection to the next hop.
About This Document About This Document
skipping to change at page 2, line 4 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 December 22, 2023. This Internet-Draft will expire on April 2, 2024.
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 29 skipping to change at page 3, line 29
"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 and 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, and MAY include 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
separator between names. Note that if a comma is included in a name separator between names. Note that if a comma is included in a name
itself, the comma must be encoded as described in Section 2.1. itself, the comma must be encoded as described in Section 2.1.
skipping to change at page 4, line 15 skipping to change at page 4, line 15
Proxy-Status: proxy.example.net; next-hop="2001:db8::1"; Proxy-Status: proxy.example.net; next-hop="2001:db8::1";
next-hop-aliases="tracker.example.com,service1.example.com" next-hop-aliases="tracker.example.com,service1.example.com"
This indicates that proxy.example.net, which used the IP address This indicates that proxy.example.net, which used the IP address
"2001:db8::1" as the next hop for this request, encountered the names "2001:db8::1" as the next hop for this request, encountered the names
"tracker.example.com" and "service1.example.com" in the DNS "tracker.example.com" and "service1.example.com" in the DNS
resolution chain. Note that while this example includes both the resolution chain. Note that while this example includes both the
"next-hop" and "next-hop-aliases" parameters, "next-hop-aliases" can "next-hop" and "next-hop-aliases" parameters, "next-hop-aliases" can
be included without including "next-hop". be included without including "next-hop".
The proxy can also include the name of the next hop as the first item
in the list. This is particularly useful for reverse proxies when
clients would not otherwise know the name of the next hop, and the
"next-hop" header is used to convey an IP address.
For example, consider a proxy "reverseproxy.example.net" that
receives the following records when performing DNS resolution for the
next hop "host.example.com":
host2.example.com. CNAME service2.example.com.
service2.example.com. AAAA 2001:db8::2
The proxy could include the following proxy status in its response:
Proxy-Status: reverseproxy.example.net; next-hop="2001:db8::2";
next-hop-aliases="host2.example.com,service2.example.com"
The "next-hop-aliases" parameter only applies when DNS was used to The "next-hop-aliases" parameter only applies when DNS was used to
resolve the next hop's name, and does not apply in all situations. resolve the next hop's name, and does not apply in all situations.
Clients can use the information in this parameter to determine how to Clients can use the information in this parameter to determine how to
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.
 End of changes. 5 change blocks. 
5 lines changed or deleted 22 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/