| rfc9532.original | rfc9532.txt | |||
|---|---|---|---|---|
| HTTP T. Pauly | Internet Engineering Task Force (IETF) T. Pauly | |||
| Internet-Draft Apple, Inc. | Request for Comments: 9532 Apple, Inc. | |||
| Intended status: Standards Track 13 December 2023 | Category: Standards Track January 2024 | |||
| Expires: 15 June 2024 | ISSN: 2070-1721 | |||
| HTTP Proxy-Status Parameter for Next-Hop Aliases | HTTP Proxy-Status Parameter for Next-Hop Aliases | |||
| draft-ietf-httpbis-alias-proxy-status-07 | ||||
| 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 of | names an intermediary received during DNS resolution as part of | |||
| establishing a connection to the next hop. | establishing a connection to the next hop. | |||
| About This Document | ||||
| This note is to be removed before publishing as an RFC. | ||||
| Status information for this document may be found at | ||||
| https://datatracker.ietf.org/doc/draft-ietf-httpbis-alias-proxy- | ||||
| status/. | ||||
| Discussion of this document takes place on the HTTP Working Group | ||||
| mailing list (mailto:ietf-http-wg@w3.org), which is archived at | ||||
| https://lists.w3.org/Archives/Public/ietf-http-wg/. Working Group | ||||
| information can be found at https://httpwg.org/. | ||||
| Source for this draft and an issue tracker can be found at | ||||
| https://github.com/httpwg/http-extensions/labels/alias-proxy-status. | ||||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 15 June 2024. | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | ||||
| https://www.rfc-editor.org/info/rfc9532. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2024 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
| extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
| described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
| provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements | |||
| 2. next-hop-aliases Parameter . . . . . . . . . . . . . . . . . 3 | 2. next-hop-aliases Parameter | |||
| 2.1. Encoding special characters . . . . . . . . . . . . . . . 4 | 2.1. Encoding Special Characters | |||
| 3. Implementation Considerations . . . . . . . . . . . . . . . . 5 | 3. Implementation Considerations | |||
| 4. Security Considerations . . . . . . . . . . . . . . . . . . . 6 | 4. Security Considerations | |||
| 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 | 5. IANA Considerations | |||
| 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 6. References | |||
| 6.1. Normative References . . . . . . . . . . . . . . . . . . 6 | 6.1. Normative References | |||
| 6.2. Informative References . . . . . . . . . . . . . . . . . 7 | 6.2. Informative References | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8 | Author's Address | |||
| 1. Introduction | 1. Introduction | |||
| The Proxy-Status HTTP response field [PROXY-STATUS] allows | The Proxy-Status HTTP response field [PROXY-STATUS] allows | |||
| intermediaries to convey information about how they handled the | intermediaries to convey information about how they handled the | |||
| request in HTTP responses sent to clients. It defines a set of | request in HTTP responses sent to clients. It defines a set of | |||
| parameters that provide information, such as the name of the next | parameters that provide information, such as the name of the next | |||
| hop. | hop. | |||
| [PROXY-STATUS] defines a next-hop parameter, which can contain a | [PROXY-STATUS] defines a next-hop parameter, which can contain a | |||
| skipping to change at page 3, line 6 ¶ | skipping to change at line 81 ¶ | |||
| the next hop. | the next hop. | |||
| Knowing the full chain of names that were used during DNS resolution | Knowing the full chain of names that were used during DNS resolution | |||
| via CNAME records [DNS] is particularly useful for clients of forward | via CNAME records [DNS] is particularly useful for clients of forward | |||
| proxies, in which the client is requesting to connect to a specific | proxies, in which the client is requesting to connect to a specific | |||
| target hostname using the CONNECT method [HTTP] or UDP proxying | target hostname using the CONNECT method [HTTP] or UDP proxying | |||
| [CONNECT-UDP]. CNAME records can be used to "cloak" hosts that | [CONNECT-UDP]. CNAME records can be used to "cloak" hosts that | |||
| perform tracking or malicious activity behind more innocuous | perform tracking or malicious activity behind more innocuous | |||
| hostnames, and clients such as web browsers use the chain of DNS | hostnames, and clients such as web browsers use the chain of DNS | |||
| names to influence behavior like cookie usage policies [COOKIES] or | names to influence behavior like cookie usage policies [COOKIES] or | |||
| blocking of malicious hosts. | the blocking of malicious hosts. | |||
| This document allows clients to receive the CNAME chain of DNS names | This document allows clients to receive the CNAME chain of DNS names | |||
| for the next hop by including the list of names in a new next-hop- | for the next hop by including the list of names in a new next-hop- | |||
| aliases Proxy-Status parameter. | aliases Proxy-Status parameter. | |||
| 1.1. Requirements | 1.1. Requirements | |||
| 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 value of the next-hop-aliases parameter 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, and MAY include the | resolving the next hop's hostname using DNS and MAY include the | |||
| original requested hostname itself. The names ought to appear in the | original requested hostname itself. The names ought to appear in the | |||
| order in which they were received in DNS, for the sake of | order in which they were received in DNS, for the sake of | |||
| consistency. If there are multiple CNAME records in the chain, the | consistency. If there are multiple CNAME records in the chain, the | |||
| first name in the next-hop-aliases list would be the value in the | first name in the next-hop-aliases list would be the value in the | |||
| CNAME record for the original hostname, and the final name in the | CNAME record for the original hostname, and the final name in the | |||
| next-hop-aliases list would be the name that ultimately resolved to | next-hop-aliases list would be the name that ultimately resolved to | |||
| one or more addresses. | 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 parameter uses a comma | |||
| separator between names. Note that if a comma is included in a name | (",") as a separator between names. Note that if a comma is included | |||
| itself, the comma must be encoded as described in Section 2.1. | in a name itself, the comma must be encoded as described in | |||
| Section 2.1. | ||||
| For example, consider a proxy "proxy.example.net" that receives the | For example, consider a proxy "proxy.example.net" that receives the | |||
| following records when performing DNS resolution for the next hop | following records when performing DNS resolution for the next hop | |||
| "host.example.com": | "host.example.com": | |||
| host.example.com. CNAME tracker.example.com. | host.example.com. CNAME tracker.example.com. | |||
| tracker.example.com. CNAME service1.example.com. | tracker.example.com. CNAME service1.example.com. | |||
| service1.example.com. AAAA 2001:db8::1 | service1.example.com. AAAA 2001:db8::1 | |||
| The proxy could include the following proxy status in its response: | The proxy could include the following proxy status in its response: | |||
| 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 be | next-hop and next-hop-aliases parameters, next-hop-aliases can be | |||
| included without including next-hop. | included without including next-hop. | |||
| The proxy can also include the name of the next hop as the first item | 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 | in the list. This is particularly useful for reverse proxies when | |||
| clients would not otherwise know the name of the next hop, and the | clients would not otherwise know the name of the next hop, and the | |||
| next-hop header is used to convey an IP address. | next-hop header is used to convey an IP address. | |||
| skipping to change at page 4, line 30 ¶ | skipping to change at line 153 ¶ | |||
| host2.example.com. CNAME service2.example.com. | host2.example.com. CNAME service2.example.com. | |||
| service2.example.com. AAAA 2001:db8::2 | service2.example.com. AAAA 2001:db8::2 | |||
| The proxy could include the following proxy status in its response: | The proxy could include the following proxy status in its response: | |||
| Proxy-Status: reverseproxy.example.net; next-hop="2001:db8::2"; | Proxy-Status: reverseproxy.example.net; next-hop="2001:db8::2"; | |||
| next-hop-aliases="host2.example.com,service2.example.com" | 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 it 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 they 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 parameter to indicate that no CNAME records were encountered | |||
| resolving the next hop's name. | when 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 contain just 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- | unreserved characters ([RFC3986], Section 2.3) MUST be percent- | |||
| encoded as defined in [RFC3986], Section 2.1. | encoded as defined in [RFC3986], Section 2.1. | |||
| For example, consider the DNS name comma,name.example.com. This name | For example, consider the DNS name "comma,name.example.com". This | |||
| would be encoded within a next-hop-aliases parameter as follows: | name would be encoded within a next-hop-aliases parameter as follows: | |||
| Proxy-Status: proxy.example.net; next-hop="2001:db8::1"; | Proxy-Status: proxy.example.net; next-hop="2001:db8::1"; | |||
| next-hop-aliases="comma%2Cname.example.com,service1.example.com" | next-hop-aliases="comma%2Cname.example.com,service1.example.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, | |||
| the period character MUST be first escaped as "\.". Since the "\" | the period character MUST first be escaped as "\.". Since the "\" | |||
| character itself will be percent-encoded, the name | character itself will be percent-encoded, the name | |||
| "dot\.label.example.com" would be encoded within a next-hop-aliases | "dot\.label.example.com" would be encoded within a next-hop-aliases | |||
| parameter as follows: | parameter as follows: | |||
| Proxy-Status: proxy.example.net; next-hop="2001:db8::1"; | Proxy-Status: proxy.example.net; next-hop="2001:db8::1"; | |||
| next-hop-aliases="dot%5C.label.example.com,service1.example.com" | next-hop-aliases="dot%5C.label.example.com,service1.example.com" | |||
| Upon parsing this name, "dot%5C.label" MUST be treated as a single | Upon parsing this name, "dot%5C.label" MUST be treated as a single | |||
| label. | label. | |||
| Similarly the "\" character in a label MUST be escaped as "\\" and | Similarly, the "\" character in a label MUST be escaped as "\\" and | |||
| then percent-encoded. Other uses of "\" MUST NOT appear in the label | then percent-encoded. Other uses of "\" MUST NOT appear in the label | |||
| after percent-decoding. For example, if there is a DNS name | after percent-decoding. For example, if there is a DNS name | |||
| "backslash\name.example.com", it would first be escaped as | "backslash\name.example.com", it would first be escaped as | |||
| "backslash\\name.example.com", and then percent-encoded as follows: | "backslash\\name.example.com" and then percent-encoded as follows: | |||
| Proxy-Status: proxy.example.net; next-hop="2001:db8::1"; | Proxy-Status: proxy.example.net; next-hop="2001:db8::1"; | |||
| next-hop-aliases="backslash%5C%5Cname.example.com,service1.example.com" | next-hop-aliases="backslash%5C%5Cname.example.com,s1.example.com" | |||
| 3. Implementation Considerations | 3. Implementation Considerations | |||
| In order to include the next-hop-aliases parameter, a proxy needs to | In order to include the next-hop-aliases parameter, a proxy needs to | |||
| have access to the chain of alias names and canonical names received | have access to the chain of alias names and canonical names received | |||
| in CNAME records. | in CNAME records. | |||
| Implementations ought to note that the full chain of names might not | Implementations ought to note that the full chain of names might not | |||
| be available in common DNS resolution APIs, such as getaddrinfo | be available in common DNS resolution APIs, such as getaddrinfo | |||
| [POSIX]. getaddrinfo does have an option for AI_CANONNAME | [POSIX]. getaddrinfo does have an option for AI_CANONNAME ([RFC3493], | |||
| (Section 6.1 of [RFC3493]), but this will only return the last name | Section 6.1), but this will only return the last name in the chain | |||
| in the chain (the canonical name), not the alias names. | (the canonical name), not the alias names. | |||
| An implementation MAY include incomplete information in the next-hop- | An implementation MAY include incomplete information in the next-hop- | |||
| aliases parameter to accommodate cases where it is unable to include | aliases parameter to accommodate cases where it is unable to include | |||
| the full chain, such as only including the canonical name if the | the full chain, such as only including the canonical name if the | |||
| implementation can only use getaddrinfo as described above. | implementation can only use getaddrinfo as described above. | |||
| 4. Security Considerations | 4. Security Considerations | |||
| The next-hop-aliases parameter does not include any DNSSEC | The next-hop-aliases parameter does not include any DNSSEC | |||
| information or imply that DNSSEC was used. The information included | information or imply that DNSSEC was used. The information included | |||
| in the parameter can only be trusted to be valid insofar as the | in the parameter can only be trusted to be valid insofar as the | |||
| client trusts the proxy to provide accurate information. This | client trusts the proxy to provide accurate information. This | |||
| information is intended to be used as a hint, and SHOULD NOT be used | information is intended to be used as a hint and SHOULD NOT be used | |||
| for making security decisions about the identity of a resource | for making security decisions about the identity of a resource | |||
| accessed through the proxy. | accessed through the proxy. | |||
| Inspecting CNAME chains can be used to detect cloaking of trackers or | Inspecting CNAME chains can be used to detect cloaking of trackers or | |||
| malicious hosts. However, the CNAME records could be omitted by a | malicious hosts. However, the CNAME records could be omitted by a | |||
| recursive or authoritative resolver that is trying to hide this form | recursive or authoritative resolver that is trying to hide this form | |||
| of cloaking. In particular, recursive or authoritative resolvers can | of cloaking. In particular, recursive or authoritative resolvers can | |||
| omit these records for both clients directly performing DNS name | omit these records for both clients directly performing DNS name | |||
| resolution and proxies performing DNS name resolution on behalf of | resolution and proxies performing DNS name resolution on behalf of a | |||
| client. A malicious proxy could also choose to not report these | client. A malicious proxy could also choose to not report these | |||
| CNAME chains in order to hide the cloaking. In general, clients can | CNAME chains in order to hide the cloaking. In general, clients can | |||
| trust information included (or not included) in the next-hop-aliases | trust information included (or not included) in the next-hop-aliases | |||
| parameter to the degree that the proxy and any resolvers used by the | parameter to the degree that the proxy and any resolvers used by the | |||
| proxy are trusted. | proxy are trusted. | |||
| 5. IANA Considerations | 5. IANA Considerations | |||
| This document registers the "next-hop-aliases" parameter in the "HTTP | This document registers the next-hop-aliases parameter in the "HTTP | |||
| Proxy-Status Parameters" registry <https://www.iana.org/assignments/ | Proxy-Status Parameters" registry <https://www.iana.org/assignments/ | |||
| http-proxy-status>. | http-proxy-status> as shown in Table 1. | |||
| Name: next-hop-aliases | ||||
| Description: A string containing one or more DNS aliases or | +==================+=================================+===========+ | |||
| canonical names used to establish a proxied connection to the next | | Name | Description | Reference | | |||
| hop. | +==================+=================================+===========+ | |||
| | next-hop-aliases | A string containing one or more | RFC 9532 | | ||||
| | | DNS aliases or canonical names | | | ||||
| | | used to establish a proxied | | | ||||
| | | connection to the next hop. | | | ||||
| +------------------+---------------------------------+-----------+ | ||||
| Reference: This document | Table 1: HTTP Proxy-Status Parameters Registry | |||
| 6. References | 6. References | |||
| 6.1. Normative References | 6.1. Normative References | |||
| [CONNECT-UDP] | [CONNECT-UDP] | |||
| Schinazi, D., "Proxying UDP in HTTP", RFC 9298, | Schinazi, D., "Proxying UDP in HTTP", RFC 9298, | |||
| DOI 10.17487/RFC9298, August 2022, | DOI 10.17487/RFC9298, August 2022, | |||
| <https://www.rfc-editor.org/rfc/rfc9298>. | <https://www.rfc-editor.org/info/rfc9298>. | |||
| [DNS] Mockapetris, P., "Domain names - concepts and facilities", | [DNS] Mockapetris, P., "Domain names - concepts and facilities", | |||
| STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | STD 13, RFC 1034, DOI 10.17487/RFC1034, November 1987, | |||
| <https://www.rfc-editor.org/rfc/rfc1034>. | <https://www.rfc-editor.org/info/rfc1034>. | |||
| [HTTP] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, | [HTTP] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, | |||
| Ed., "HTTP Semantics", STD 97, RFC 9110, | Ed., "HTTP Semantics", STD 97, RFC 9110, | |||
| DOI 10.17487/RFC9110, June 2022, | DOI 10.17487/RFC9110, June 2022, | |||
| <https://www.rfc-editor.org/rfc/rfc9110>. | <https://www.rfc-editor.org/info/rfc9110>. | |||
| [PROXY-STATUS] | [PROXY-STATUS] | |||
| Nottingham, M. and P. Sikora, "The Proxy-Status HTTP | Nottingham, M. and P. Sikora, "The Proxy-Status HTTP | |||
| Response Header Field", RFC 9209, DOI 10.17487/RFC9209, | Response Header Field", RFC 9209, DOI 10.17487/RFC9209, | |||
| June 2022, <https://www.rfc-editor.org/rfc/rfc9209>. | June 2022, <https://www.rfc-editor.org/info/rfc9209>. | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/rfc/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform | |||
| Resource Identifier (URI): Generic Syntax", STD 66, | Resource Identifier (URI): Generic Syntax", STD 66, | |||
| RFC 3986, DOI 10.17487/RFC3986, January 2005, | RFC 3986, DOI 10.17487/RFC3986, January 2005, | |||
| <https://www.rfc-editor.org/rfc/rfc3986>. | <https://www.rfc-editor.org/info/rfc3986>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/rfc/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [STRUCTURED-FIELDS] | [STRUCTURED-FIELDS] | |||
| Nottingham, M. and P. Kamp, "Structured Field Values for | Nottingham, M. and P. Kamp, "Structured Field Values for | |||
| HTTP", RFC 8941, DOI 10.17487/RFC8941, February 2021, | HTTP", RFC 8941, DOI 10.17487/RFC8941, February 2021, | |||
| <https://www.rfc-editor.org/rfc/rfc8941>. | <https://www.rfc-editor.org/info/rfc8941>. | |||
| 6.2. Informative References | 6.2. Informative References | |||
| [COOKIES] Barth, A., "HTTP State Management Mechanism", RFC 6265, | [COOKIES] Barth, A., "HTTP State Management Mechanism", RFC 6265, | |||
| DOI 10.17487/RFC6265, April 2011, | DOI 10.17487/RFC6265, April 2011, | |||
| <https://www.rfc-editor.org/rfc/rfc6265>. | <https://www.rfc-editor.org/info/rfc6265>. | |||
| [POSIX] IEEE, "Standard for Information Technology Portable | [POSIX] IEEE, "IEEE Standard for Information Technology--Portable | |||
| Operating System Interface (POSIX(R)) Base Specifications, | Operating System Interface (POSIX(TM)) Base | |||
| Issue 7", DOI 10.1109/ieeestd.2013.6506091, April 2013, | Specifications, Issue 7", IEEE Std 1003.1-2017, | |||
| <http://ieeexplore.ieee.org/servlet/ | DOI 10.1109/IEEESTD.2018.8277153, January 2018, | |||
| opac?punumber=6506089>. | <https://ieeexplore.ieee.org/document/8277153>. | |||
| [RFC1035] Mockapetris, P., "Domain names - implementation and | [RFC1035] Mockapetris, P., "Domain names - implementation and | |||
| specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, | |||
| November 1987, <https://www.rfc-editor.org/rfc/rfc1035>. | November 1987, <https://www.rfc-editor.org/info/rfc1035>. | |||
| [RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W. | [RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W. | |||
| Stevens, "Basic Socket Interface Extensions for IPv6", | Stevens, "Basic Socket Interface Extensions for IPv6", | |||
| RFC 3493, DOI 10.17487/RFC3493, February 2003, | RFC 3493, DOI 10.17487/RFC3493, February 2003, | |||
| <https://www.rfc-editor.org/rfc/rfc3493>. | <https://www.rfc-editor.org/info/rfc3493>. | |||
| Author's Address | Author's Address | |||
| Tommy Pauly | Tommy Pauly | |||
| Apple, Inc. | Apple, Inc. | |||
| Email: tpauly@apple.com | Email: tpauly@apple.com | |||
| End of changes. 44 change blocks. | ||||
| 102 lines changed or deleted | 87 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||