rfc9652.original.xml   rfc9652.xml 
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE rfc [ <!DOCTYPE rfc [
<!ENTITY nbsp "&#160;"> <!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;"> <!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;"> <!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;"> <!ENTITY wj "&#8288;">
]> ]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.8 (Ruby 3.2.2 <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft
) --> -ietf-httpapi-link-template-04" number="9652" obsoletes="" updates="" submission
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft Type="IETF" category="std" consensus="true" tocInclude="true" sortRefs="true" sy
-ietf-httpapi-link-template-04" category="std" consensus="true" tocInclude="true mRefs="true" version="3" xml:lang="en">
" sortRefs="true" symRefs="true" version="3">
<!-- xml2rfc v2v3 conversion 3.20.1 -->
<front> <front>
<title abbrev="Link-Template">The Link-Template HTTP Header Field</title> <title abbrev="Link-Template">The Link-Template HTTP Header Field</title>
<seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-link-template-04 "/> <seriesInfo name="RFC" value="9652"/>
<author initials="M." surname="Nottingham" fullname="Mark Nottingham"> <author initials="M." surname="Nottingham" fullname="Mark Nottingham">
<organization/> <organization/>
<address> <address>
<postal> <postal>
<postalLine>Prahran</postalLine> <postalLine>Prahran</postalLine>
<postalLine>Australia</postalLine> <postalLine>Australia</postalLine>
</postal> </postal>
<email>mnot@mnot.net</email> <email>mnot@mnot.net</email>
<uri>https://www.mnot.net/</uri> <uri>https://www.mnot.net/</uri>
</address> </address>
</author> </author>
<date year="2024" month="April" day="01"/> <date year="2024" month="September"/>
<area>Applications and Real-Time</area>
<workgroup>Building Blocks for HTTP APIs</workgroup> <area>WIT</area>
<workgroup>httpapi</workgroup>
<keyword>link relation</keyword> <keyword>link relation</keyword>
<abstract>
<?line 52?>
<t>This specification defines the Link-Template HTTP header field, providing a m <abstract>
eans for describing the structure of a link between two resources, so that new l <t>This specification defines the Link-Template HTTP header field, providing a m
inks can be generated.</t> eans for describing the structure of a link between two resources so that new li
nks can be generated.</t>
</abstract> </abstract>
<note removeInRFC="true">
<name>About This Document</name>
<t>
The latest revision of this draft can be found at <eref target="https://
ietf-wg-httpapi.github.io/link-template/draft-ietf-httpapi-link-template.html"/>
.
Status information for this document may be found at <eref target="https
://datatracker.ietf.org/doc/draft-ietf-httpapi-link-template/"/>.
</t>
<t>
Discussion of this document takes place on the
Building Blocks for HTTP APIs Working Group mailing list (<eref target="
mailto:httpapi@ietf.org"/>),
which is archived at <eref target="https://mailarchive.ietf.org/arch/bro
wse/httpapi/"/>.
Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/httpapi
/"/>.
</t>
<t>Source for this draft and an issue tracker can be found at
<eref target="https://github.com/ietf-wg-httpapi/link-template"/>.</t>
</note>
</front> </front>
<middle> <middle>
<?line 57?>
<section anchor="introduction"> <section anchor="introduction">
<name>Introduction</name> <name>Introduction</name>
<t><xref target="URI-TEMPLATE"/> defines a syntax for templates that, when <t><xref target="RFC6570"/> defines a syntax for templates that, when expa
expanded using a set of variables, results in a URI <xref target="URI"/>.</t> nded using a set of variables, results in a URI <xref target="RFC3986"/>.</t>
<t>This specification defines a HTTP header field <xref target="HTTP"/> fo <t>This specification defines a HTTP header field <xref target="RFC9110"/>
r conveying templates for links in the headers of a HTTP message. It is complime for conveying templates for links in the headers of a HTTP message. It is compl
ntary to the Link header field defined in <xref section="3" sectionFormat="of" t imentary to the Link header field defined in <xref section="3" sectionFormat="of
arget="WEB-LINKING"/>, which carries links directly.</t> " target="RFC8288"/>, which carries links directly.</t>
<section anchor="notational-conventions"> <section anchor="notational-conventions">
<name>Notational Conventions</name> <name>Notational Conventions</name>
<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp <t>
14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECO "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>
MMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", ",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be i "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>",
nterpreted as "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to
only when, they be
appear in all capitals, as shown here.</t> interpreted as described in BCP&nbsp;14 <xref target="RFC2119"/> <xref
<?line -18?> target="RFC8174"/> when, and only when, they appear in all capitals, as
shown here.
<t>This specification uses the following terms from <xref target="STRUCTURED-FIE </t>
LDS"/>: List, String, Display String, Parameter.</t> <t>This specification uses the following terms from <xref target="STRUCTURED-FIE
LDS"/>: List, String, Display String, and Parameter.</t>
</section> </section>
</section> </section>
<section anchor="the-link-template-header-field"> <section anchor="the-link-template-header-field">
<name>The Link-Template Header Field</name> <name>The Link-Template Header Field</name>
<t>The Link-Template header field is a Structured Field <xref target="STRU <t>The Link-Template header field is a Structured Field <xref target="STRU
CTURED-FIELDS"/> that serializes one or more links into HTTP message metadata. I CTURED-FIELDS"/> that serializes one or more links into HTTP message metadata. I
t is semantically equivalent to the Link header field defined in <xref section=" t is semantically equivalent to the Link header field defined in <xref section="
3" sectionFormat="of" target="WEB-LINKING"/>, except that the link target and li 3" sectionFormat="of" target="RFC8288"/>, except that the link target and link a
nk anchor can contain URI Templates <xref target="URI-TEMPLATE"/>.</t> nchor can contain URI Templates <xref target="RFC6570"/>.</t>
<t>Its value is a List of Strings. Each String is a URI Template, and Para <t>The Link-template header field's value is a List of Strings (see <xref
meters on it carry associated metadata.</t> target="STRUCTURED-FIELDS"/>). Each String contains a URI Template and can have
Parameters that carry metadata associated with that template.</t>
<t>For example:</t> <t>For example:</t>
<sourcecode type="http-message"><![CDATA[ <sourcecode type="http-message"><![CDATA[
Link-Template: "/{username}"; rel="item" Link-Template: "/{username}"; rel="item"
]]></sourcecode> ]]></sourcecode>
<t>indicates that a resource with the relation type "item" for a given "us ername" can be found by expanding the "username" variable into the template give n.</t> <t>indicates that a resource with the relation type "item" for a given "us ername" can be found by expanding the "username" variable into the template give n.</t>
<t>The link target (as defined in <xref section="2" sectionFormat="of" tar <t>The link target (see <xref section="2" sectionFormat="of" target="RFC82
get="WEB-LINKING"/>) is the result of expanding the URI Template <xref target="U 88"/>) is determined by expanding the template and converting it to an absolute
RI-TEMPLATE"/> (being converted to an absolute URI after expansion, if necessary URI (if necessary).</t>
).</t> <t>The link context and link relation type for the link (as defined in <xr
<t>The link context and link relation type for the link (as defined in <xr ef section="2" sectionFormat="of" target="RFC8288"/>) are conveyed using the 'an
ef section="2" sectionFormat="of" target="WEB-LINKING"/>) are conveyed using the chor' and 'rel' Parameters, as they are for the Link header field in <xref secti
"anchor" and "rel" Parameters, as they are for the Link header field in <xref s on="3" sectionFormat="of" target="RFC8288"/>. Their values <bcp14>MUST</bcp14> b
ection="3" sectionFormat="of" target="WEB-LINKING"/>. Their values <bcp14>MUST</ e Strings.</t>
bcp14> be Strings.</t> <t>However, the 'anchor' Parameter <bcp14>MAY</bcp14> contain a URI Templa
<t>However, the "anchor" Parameter <bcp14>MAY</bcp14> contain a URI Templa te. For example:</t>
te. For example:</t>
<sourcecode type="http-message"><![CDATA[ <sourcecode type="http-message"><![CDATA[
Link-Template: "/books/{book_id}/author"; Link-Template: "/books/{book_id}/author";
rel="author"; anchor="#{book_id}" rel="author"; anchor="#{book_id}"
]]></sourcecode> ]]></sourcecode>
<t>Here, the link to the author for a particular book in a list of books c an be found by following the link template.</t> <t>Here, the link to the author for a particular book in a list of books c an be found by following the link template.</t>
<t>This specification defines additional semantics for the "var-base" Para <t>This specification defines additional semantics for the 'var-base' Para
meter on templated links; see below.</t> meter on templated links; see <xref target="the-var-base-parameter" format="defa
<t>The link's target attributes (as defined in <xref section="2.2" section ult"/>.</t>
Format="of" target="WEB-LINKING"/>) are conveyed using other Parameters, in a ma <t>The link's target attributes (as defined in <xref section="2.2" section
nner similar to the Link header field. These Parameter values <bcp14>MUST</bcp14 Format="of" target="RFC8288"/>) are conveyed using other Parameters, in a manner
> be Strings, unless they contain non-ASCII characters, in which case they <bcp1 similar to the Link header field. These Parameter values <bcp14>MUST</bcp14> be
4>MUST</bcp14> be Display Strings. Note that some target attribute names will no Strings, unless they contain non-ASCII characters, in which case they <bcp14>MU
t serialise as Structured Field Parameter keys (see <xref section="3.1.2" sectio ST</bcp14> be Display Strings. Note that some target attribute names will not se
nFormat="of" target="STRUCTURED-FIELDS"/>).</t> rialize as Structured Field Parameter keys (see <xref section="3.1.2" sectionFor
mat="of" target="STRUCTURED-FIELDS"/>).</t>
<t>For example:</t> <t>For example:</t>
<sourcecode type="http-message"><![CDATA[ <sourcecode type="http-message"><![CDATA[
Link-Template: "/author"; rel="author"; Link-Template: "/author"; rel="author";
title=%"Bj%c3%b6rn J%c3%a4rnsida" title=%"Bj%c3%b6rn J%c3%a4rnsida"
]]></sourcecode> ]]></sourcecode>
<t>Implementations <bcp14>MUST</bcp14> support all levels of template defi ned by <xref target="URI-TEMPLATE"/> in the link String and the anchor Parameter .</t> <t>Implementations <bcp14>MUST</bcp14> support all levels of template defi ned by <xref target="RFC6570"/> in the link String and the 'anchor' Parameter.</ t>
<section anchor="the-var-base-parameter"> <section anchor="the-var-base-parameter">
<name>The 'var-base' parameter</name> <name>The 'var-base' Parameter</name>
<t>When a templated link has a 'var-base' parameter, its value conveys a <t>When a templated link has a 'var-base' Parameter, its value conveys a
URI-reference that is used as a base URI for the variable names in the URI temp URI-reference that is used as a base URI for the variable names in the URI Temp
late. This allows template variables to be globally identified, rather than spec late. This allows template variables to be globally identified, rather than spec
ific to the context of use.</t> ific to the context of use.</t>
<t>Dereferencing the URI for a particular variable might lead to more in formation about the syntax or semantics of that variable; specification of parti cular formats for this information is out of scope for this document.</t> <t>Dereferencing the URI for a particular variable might lead to more in formation about the syntax or semantics of that variable; specification of parti cular formats for this information is out of scope for this document.</t>
<t>To determine the URI for a given variable, the value given is used as a base URI in reference resolution (as specified in <xref target="URI"/>). If t he resulting URI is still relative, the context of the link is used as the base URI in a further resolution; see <xref target="WEB-LINKING"/>.</t> <t>To determine the URI for a given variable, the value given is used as a base URI in reference resolution (as specified in <xref target="RFC3986"/>). If the resulting URI is still relative, the context of the link is used as the b ase URI in a further resolution; see <xref target="RFC8288"/>.</t>
<t>For example:</t> <t>For example:</t>
<sourcecode type="http-message"><![CDATA[ <sourcecode type="http-message"><![CDATA[
Link-Template: "/widgets/{widget_id}"; Link-Template: "/widgets/{widget_id}";
rel="https://example.org/rel/widget"; rel="https://example.org/rel/widget";
var-base="https://example.org/vars/" var-base="https://example.org/vars/"
]]></sourcecode> ]]></sourcecode>
<t>indicates that a resource with the relation type "https://example.org /rel/widget" can be found by expanding the "https://example.org/vars/widget_id" variable into the template given.</t> <t>indicates that a resource with the relation type "https://example.org /rel/widget" can be found by expanding the "https://example.org/vars/widget_id" variable into the template given.</t>
<t>If the current context of the message that the header appears within is "https://example.org/", the same information could be conveyed by this header field:</t> <t>If the current context of the message that the header appears within is "https://example.org/", the same information could be conveyed by this header field:</t>
<sourcecode type="http-message"><![CDATA[ <sourcecode type="http-message"><![CDATA[
Link-Template: "/widgets/{widget_id}"; Link-Template: "/widgets/{widget_id}";
rel="https://example.org/rel/widget"; rel="https://example.org/rel/widget";
var-base="/vars/" var-base="/vars/"
]]></sourcecode> ]]></sourcecode>
</section> </section>
</section> </section>
<section anchor="security-considerations"> <section anchor="security-considerations">
<name>Security Considerations</name> <name>Security Considerations</name>
<t>The security consideration for the Link header field in <xref target="W <t>The security considerations for the Link header field in <xref target="
EB-LINKING"/> and those for URI Templates <xref target="URI-TEMPLATE"/> both app RFC8288"/> and those for URI Templates <xref target="RFC6570"/> apply.</t>
ly.</t> <t>Target attributes that are conveyed via Display Strings can be vulnerab
<t>Target attributes that are conveyed via Display Strings can be vulnerab le to a wide variety of attacks. See <xref target="UNICODE-SECURITY"/> for advic
le to a wide variety of attacks. See <xref target="UNICODE-SECURITY"/> for advic e regarding their handling. Specific advice is not given by this specification s
e regarding their handling. Specific advice is not given by this specification, ince there are a variety of potential use cases for such attributes.</t>
since there are a variety of potential use cases for such attributes.</t>
</section> </section>
<section anchor="iana-considerations"> <section anchor="iana-considerations">
<name>IANA Considerations</name> <name>IANA Considerations</name>
<t>This specification enters the "Link-Template" into the Hypertext Transf <t>This specification enters the "Link-Template" field name into the "Hype
er Protocol (HTTP) Field Name Registry.</t> rtext Transfer Protocol (HTTP) Field Name Registry".</t>
<ul spacing="normal"> <table anchor="http-field-name-registry">
<li> <name></name>
<t>Field Name: Link-Template</t> <thead>
</li> <tr>
<li> <th>Field Name</th>
<t>Status: permanent</t> <th>Status</th>
</li> <th>Reference</th>
<li> </tr>
<t>Specification document: [this document]</t> </thead>
</li> <tbody>
</ul> <tr>
<td>Link-Template</td>
<td>Permanent</td>
<td>This document</td>
</tr>
</tbody>
</table>
</section> </section>
</middle> </middle>
<back> <back>
<displayreference target="RFC9110" to="HTTP"/>
<displayreference target="RFC6570" to="URI-TEMPLATE"/>
<displayreference target="RFC3986" to="URI"/>
<displayreference target="RFC8288" to="WEB-LINKING"/>
<references anchor="sec-normative-references"> <references anchor="sec-normative-references">
<name>Normative References</name> <name>Normative References</name>
<reference anchor="HTTP">
<front> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.911
<title>HTTP Semantics</title> 0.xml"/>
<author fullname="R. Fielding" initials="R." role="editor" surname="Fi <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.657
elding"/> 0.xml"/>
<author fullname="M. Nottingham" initials="M." role="editor" surname=" <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.398
Nottingham"/> 6.xml"/>
<author fullname="J. Reschke" initials="J." role="editor" surname="Res <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.828
chke"/> 8.xml"/>
<date month="June" year="2022"/>
<abstract> <!-- [I-D.ietf-httpbis-sfbis] [STRUCTURED-FIELDS] now RFC 9651 in AUTH48, to be
<t>The Hypertext Transfer Protocol (HTTP) is a stateless application updated -->
-level protocol for distributed, collaborative, hypertext information systems. T <reference anchor="STRUCTURED-FIELDS" target="https://www.rfc-editor.org/i
his document describes the overall architecture of HTTP, establishes common term nfo/rfc9651">
inology, and defines aspects of the protocol that are shared by all versions. In
this definition are core protocol elements, extensibility mechanisms, and the "
http" and "https" Uniform Resource Identifier (URI) schemes.</t>
<t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 723
2, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
</abstract>
</front>
<seriesInfo name="STD" value="97"/>
<seriesInfo name="RFC" value="9110"/>
<seriesInfo name="DOI" value="10.17487/RFC9110"/>
</reference>
<reference anchor="URI-TEMPLATE">
<front>
<title>URI Template</title>
<author fullname="J. Gregorio" initials="J." surname="Gregorio"/>
<author fullname="R. Fielding" initials="R." surname="Fielding"/>
<author fullname="M. Hadley" initials="M." surname="Hadley"/>
<author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
<author fullname="D. Orchard" initials="D." surname="Orchard"/>
<date month="March" year="2012"/>
<abstract>
<t>A URI Template is a compact sequence of characters for describing
a range of Uniform Resource Identifiers through variable expansion. This specif
ication defines the URI Template syntax and the process for expanding a URI Temp
late into a URI reference, along with guidelines for the use of URI Templates on
the Internet. [STANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="RFC" value="6570"/>
<seriesInfo name="DOI" value="10.17487/RFC6570"/>
</reference>
<reference anchor="URI">
<front>
<title>Uniform Resource Identifier (URI): Generic Syntax</title>
<author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/
>
<author fullname="R. Fielding" initials="R." surname="Fielding"/>
<author fullname="L. Masinter" initials="L." surname="Masinter"/>
<date month="January" year="2005"/>
<abstract>
<t>A Uniform Resource Identifier (URI) is a compact sequence of char
acters that identifies an abstract or physical resource. This specification defi
nes the generic URI syntax and a process for resolving URI references that might
be in relative form, along with guidelines and security considerations for the
use of URIs on the Internet. The URI syntax defines a grammar that is a superset
of all valid URIs, allowing an implementation to parse the common components of
a URI reference without knowing the scheme-specific requirements of every possi
ble identifier. This specification does not define a generative grammar for URIs
; that task is performed by the individual specifications of each URI scheme. [S
TANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="STD" value="66"/>
<seriesInfo name="RFC" value="3986"/>
<seriesInfo name="DOI" value="10.17487/RFC3986"/>
</reference>
<reference anchor="WEB-LINKING">
<front>
<title>Web Linking</title>
<author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
<date month="October" year="2017"/>
<abstract>
<t>This specification defines a model for the relationships between
resources on the Web ("links") and the type of those relationships ("link relati
on types").</t>
<t>It also defines the serialisation of such links in HTTP headers w
ith the Link header field.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="8288"/>
<seriesInfo name="DOI" value="10.17487/RFC8288"/>
</reference>
<reference anchor="STRUCTURED-FIELDS">
<front> <front>
<title>Structured Field Values for HTTP</title> <title>Structured Field Values for HTTP</title>
<author fullname="Mark Nottingham" initials="M." surname="Nottingham"> <author initials="M." surname="Nottingham" fullname="Mark Nottingham">
<organization>Cloudflare</organization> <organization>Cloudflare</organization>
</author> </author>
<author fullname="Poul-Henning Kamp" initials="P." surname="Kamp"> <author initials="P.-H." surname="Kamp" fullname="Poul-Henning Kamp">
<organization>The Varnish Cache Project</organization> <organization>The Varnish Cache Project</organization>
</author> </author>
<date day="23" month="January" year="2024"/> <date month="September" year="2024"/>
<abstract>
<t> This document describes a set of data types and associated alg
orithms
that are intended to make it easier and safer to define and handle
HTTP header and trailer fields, known as "Structured Fields",
"Structured Headers", or "Structured Trailers". It is intended for
use by specifications of new HTTP fields that wish to use a common
syntax that is more restrictive than traditional HTTP field values.
This document obsoletes RFC 8941.
</t>
</abstract>
</front> </front>
<seriesInfo name="Internet-Draft" value="draft-ietf-httpbis-sfbis-05"/> <seriesInfo name="RFC" value="9651"/>
<seriesInfo name="DOI" value="10.17487/RFC9651"/>
</reference> </reference>
<reference anchor="UNICODE-SECURITY" target="http://www.unicode.org/report
s/tr36/"> <reference anchor="UNICODE-SECURITY" target="https://www.unicode.org/repor
ts/tr36/">
<front> <front>
<title>Unicode Security Considerations</title> <title>Unicode Security Considerations</title>
<author initials="M." surname="Davis" fullname="Mark Davis"> <author initials="M." surname="Davis" fullname="Mark Davis">
<organization/> <organization/>
</author> </author>
<author initials="M." surname="Suignard" fullname="Michel Suignard"> <author initials="M." surname="Suignard" fullname="Michel Suignard">
<organization/> <organization/>
</author> </author>
<date year="2014" month="September" day="19"/> <date year="2014" month="September" day="19"/>
</front> </front>
<seriesInfo name="Unicode Technical Report" value="#16"/> <seriesInfo name="Unicode Technical Report" value="#16"/>
<annotation>Latest version available at <eref target="https://www.unicod e.org/reports/tr36/" brackets="angle"/>.</annotation>
</reference> </reference>
<reference anchor="RFC2119">
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title
>
<author fullname="S. Bradner" initials="S." surname="Bradner"/>
<date month="March" year="1997"/>
<abstract>
<t>In many standards track documents several words are used to signi
fy the requirements in the specification. These words are often capitalized. Thi
s document defines these words as they should be interpreted in IETF documents.
This document specifies an Internet Best Current Practices for the Internet Comm
unity, and requests discussion and suggestions for improvements.</t>
</abstract>
</front>
<seriesInfo name="BCP" value="14"/>
<seriesInfo name="RFC" value="2119"/>
<seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</titl
e>
<author fullname="B. Leiba" initials="B." surname="Leiba"/>
<date month="May" year="2017"/>
<abstract>
<t>RFC 2119 specifies common key words that may be used in protocol
specifications. This document aims to reduce the ambiguity by clarifying that on
ly UPPERCASE usage of the key words have the defined special meanings.</t>
</abstract>
</front>
<seriesInfo name="BCP" value="14"/>
<seriesInfo name="RFC" value="8174"/>
<seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
</references>
</back>
<!-- ##markdown-source:
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
oxoAAA==
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.211
9.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.817
4.xml"/>
</rfc> </references>
</back>
</rfc>
 End of changes. 29 change blocks. 
316 lines changed or deleted 132 lines changed or added

This html diff was produced by rfcdiff 1.48.