initial release
[squeep-web-linking] / reference / rfc8288.html
diff --git a/reference/rfc8288.html b/reference/rfc8288.html
new file mode 100644 (file)
index 0000000..ce1748d
--- /dev/null
@@ -0,0 +1,1542 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head profile="http://dublincore.org/documents/2008/08/04/dc-html/">
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <meta name="robots" content="index,follow" />
+    <meta name="creator" content="rfcmarkup version 1.129d on tools.ietf.org" />
+    <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
+<meta name="DC.Relation.Replaces" content="rfc5988" />
+<meta name="DC.Identifier" content="urn:ietf:rfc:8288" />
+<meta name="DC.Date.Issued" content="October, 2017" />
+<meta name="DC.Creator" content="Mark Nottingham &lt;mnot@mnot.net&gt;" />
+<meta name="DC.Description.Abstract" content="This specification defines a model for the relationships between
+resources on the Web (&quot;links&quot;) and the type of those relationships
+(&quot;link relation types&quot;).  It also defines the serialisation of such
+links in HTTP headers with the Link header field." />
+<meta name="DC.Title" content="Web Linking" />
+
+    <link rel="icon" href="/images/rfc.png" type="image/png" />
+    <link rel="shortcut icon" href="/images/rfc.png" type="image/png" />
+    <title>RFC 8288 - Web Linking</title>
+    
+    
+    <style type="text/css">
+       @media only screen 
+         and (min-width: 992px)
+         and (max-width: 1199px) {
+           body { font-size: 14pt; }
+            div.content { width: 96ex; margin: 0 auto; }
+        }
+       @media only screen 
+         and (min-width: 768px)
+         and (max-width: 991px) {
+            body { font-size: 14pt; }
+            div.content { width: 96ex; margin: 0 auto; }
+        }
+       @media only screen 
+         and (min-width: 480px)
+         and (max-width: 767px) {
+            body { font-size: 11pt; }
+            div.content { width: 96ex; margin: 0 auto; }
+        }
+       @media only screen 
+         and (max-width: 479px) {
+            body { font-size: 8pt; }
+            div.content { width: 96ex; margin: 0 auto; }
+        }
+       @media only screen 
+         and (min-device-width : 375px) 
+         and (max-device-width : 667px) {
+            body { font-size: 9.5pt; }
+            div.content { width: 96ex; margin: 0; }
+        }
+       @media only screen 
+         and (min-device-width: 1200px) {
+            body { font-size: 10pt; margin: 0 4em; }
+            div.content { width: 96ex; margin: 0; }
+        }
+        h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
+           font-weight: bold;
+            /* line-height: 0pt; */
+            display: inline;
+            white-space: pre;
+            font-family: monospace;
+            font-size: 1em;
+           font-weight: bold;
+        }
+        pre {
+            font-size: 1em;
+            margin-top: 0px;
+            margin-bottom: 0px;
+        }
+       .pre {
+           white-space: pre;
+           font-family: monospace;
+       }
+       .header{
+           font-weight: bold;
+       }
+        .newpage {
+            page-break-before: always;
+        }
+        .invisible {
+            text-decoration: none;
+            color: white;
+        }
+        a.selflink {
+          color: black;
+          text-decoration: none;
+        }
+        @media print {
+            body {
+                font-family: monospace;
+                font-size: 10.5pt;
+            }
+            h1, h2, h3, h4, h5, h6 {
+                font-size: 1em;
+            }
+        
+            a:link, a:visited {
+                color: inherit;
+                text-decoration: none;
+            }
+            .noprint {
+                display: none;
+            }
+        }
+       @media screen {
+           .grey, .grey a:link, .grey a:visited {
+               color: #777;
+           }
+            .docinfo {
+                background-color: #EEE;
+            }
+            .top {
+                border-top: 7px solid #EEE;
+            }
+            .pad {
+                padding-top: 7px;
+                line-height: 24px;
+                padding-bottom: 4px;
+            }
+            .bgwhite  { background-color: white; }
+            .bgred    { background-color: #F44; }
+            .bggrey   { background-color: #666; }
+            .bgbrown  { background-color: #840; }            
+            .bgorange { background-color: #FA0; }
+            .bgyellow { background-color: #EE0; }
+            .bgmagenta{ background-color: #F4F; }
+            .bgblue   { background-color: #66F; }
+            .bgcyan   { background-color: #4DD; }
+            .bggreen  { background-color: #4F4; }
+
+            .legend   { font-size: 90%; }
+            .cplate   { font-size: 70%; border: solid grey 1px; }
+       }
+    </style>
+    <!--[if IE]>
+    <style>
+    body {
+       font-size: 13px;
+       margin: 10px 10px;
+    }
+    </style>
+    <![endif]-->
+
+    <script type="text/javascript"><!--
+    function addHeaderTags() {
+       var spans = document.getElementsByTagName("span");
+       for (var i=0; i < spans.length; i++) {
+           var elem = spans[i];
+           if (elem) {
+               var level = elem.getAttribute("class");
+                if (level == "h1" || level == "h2" || level == "h3" || level == "h4" || level == "h5" || level == "h6") {
+                    elem.innerHTML = "<"+level+">"+elem.innerHTML+"</"+level+">";              
+                }
+           }
+       }
+    }
+    var legend_html = "Colour legend:<br />      <table>         <tr><td>Unknown:</td>                   <td><span class='cplate bgwhite'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Draft:</td>                     <td><span class='cplate bgred'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Informational:</td>             <td><span class='cplate bgorange'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Experimental:</td>              <td><span class='cplate bgyellow'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Best Common Practice:</td>      <td><span class='cplate bgmagenta'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Proposed Standard:</td>         <td><span class='cplate bgblue'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Draft Standard (old designation):</td> <td><span class='cplate bgcyan'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Internet Standard:</td>         <td><span class='cplate bggreen'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Historic:</td>                  <td><span class='cplate bggrey'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>         <tr><td>Obsolete:</td>                  <td><span class='cplate bgbrown'>&nbsp;&nbsp;&nbsp;&nbsp;</span></td></tr>     </table>";
+    function showElem(id) {
+        var elem = document.getElementById(id);
+        elem.innerHTML = eval(id+"_html");
+        elem.style.visibility='visible';
+    }
+    function hideElem(id) {
+        var elem = document.getElementById(id);
+        elem.style.visibility='hidden';        
+        elem.innerHTML = "";
+    }
+    // -->
+    </script>
+</head>
+<body onload="addHeaderTags()">
+  <div class="content">
+   <div style="height: 13px;">
+      <div onmouseover="this.style.cursor='pointer';"
+         onclick="showElem('legend');"
+         onmouseout="hideElem('legend')"
+        style="height: 6px; position: absolute;"
+         class="pre noprint docinfo bgblue"
+         title="Click for colour legend." >                                                                        </div>
+      <div id="legend"
+           class="docinfo noprint pre legend"
+           style="position:absolute; top: 4px; left: 4ex; visibility:hidden; background-color: white; padding: 4px 9px 5px 7px; border: solid #345 1px; "
+           onmouseover="showElem('legend');"
+           onmouseout="hideElem('legend');">
+      </div>
+   </div>
+<span class="pre noprint docinfo top">[<a href="../html/" title="Document search and retrieval page">Docs</a>] [<a href="/rfc/rfc8288.txt" title="Plaintext version of this document">txt</a>|<a href="/pdf/rfc8288" title="PDF version of this document">pdf</a>] [<a href="./draft-nottingham-rfc5988bis" title="draft-nottingham-rfc5988bis">draft-nottingha...</a>] [<a href='https://datatracker.ietf.org/doc/rfc8288' title='IESG Datatracker information for this document'>Tracker</a>] [<a href="/rfcdiff?difftype=--hwdiff&amp;url2=rfc8288" title="Inline diff (wdiff)">Diff1</a>] [<a href="/rfcdiff?url2=rfc8288" title="Side-by-side diff">Diff2</a>] [<a href="https://www.rfc-editor.org/errata_search.php?rfc=8288">Errata</a>]</span><br />
+<span class="pre noprint docinfo">                                                                        </span><br />
+<span class="pre noprint docinfo">                                                       PROPOSED STANDARD</span><br />
+<span class="pre noprint docinfo">                                                            <span style='color: #C00;'>Errata Exist</span></span><br />
+<pre>
+Internet Engineering Task Force (IETF)                     M. Nottingham
+Request for Comments: 8288                                  October 2017
+Obsoletes: <a href="./rfc5988">5988</a>
+Category: Standards Track
+ISSN: 2070-1721
+
+
+                              <span class="h1">Web Linking</span>
+
+Abstract
+
+   This specification defines a model for the relationships between
+   resources on the Web ("links") and the type of those relationships
+   ("link relation types").
+
+   It also defines the serialisation of such links in HTTP headers with
+   the Link header field.
+
+Status of This Memo
+
+   This is an Internet Standards Track document.
+
+   This document is a product of the Internet Engineering Task Force
+   (IETF).  It represents the consensus of the IETF community.  It has
+   received public review and has been approved for publication by the
+   Internet Engineering Steering Group (IESG).  Further information on
+   Internet Standards is available in <a href="./rfc7841#section-2">Section&nbsp;2 of RFC 7841</a>.
+
+   Information about the current status of this document, any errata,
+   and how to provide feedback on it may be obtained at
+   <a href="https://www.rfc-editor.org/info/rfc8288">https://www.rfc-editor.org/info/rfc8288</a>.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                    [Page 1]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-2" id="page-2" href="#page-2" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+Copyright Notice
+
+   Copyright (c) 2017 IETF Trust and the persons identified as the
+   document authors.  All rights reserved.
+
+   This document is subject to <a href="./bcp78">BCP 78</a> and the IETF Trust's Legal
+   Provisions Relating to IETF Documents
+   (<a href="https://trustee.ietf.org/license-info">https://trustee.ietf.org/license-info</a>) in effect on the date of
+   publication of this document.  Please review these documents
+   carefully, as they describe your rights and restrictions with respect
+   to this document.  Code Components extracted from this document must
+   include Simplified BSD License text as described in Section 4.e of
+   the Trust Legal Provisions and are provided without warranty as
+   described in the Simplified BSD License.
+
+   This document may contain material from IETF Documents or IETF
+   Contributions published or made publicly available before November
+   10, 2008.  The person(s) controlling the copyright in some of this
+   material may not have granted the IETF Trust the right to allow
+   modifications of such material outside the IETF Standards Process.
+   Without obtaining an adequate license from the person(s) controlling
+   the copyright in such materials, this document may not be modified
+   outside the IETF Standards Process, and derivative works of it may
+   not be created outside the IETF Standards Process, except to format
+   it for publication as an RFC or to translate it into languages other
+   than English.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                    [Page 2]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-3" id="page-3" href="#page-3" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+Table of Contents
+
+   <a href="#section-1">1</a>.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   <a href="#page-4">4</a>
+     <a href="#section-1.1">1.1</a>.  Notational Conventions  . . . . . . . . . . . . . . . . .   <a href="#page-4">4</a>
+     <a href="#section-1.2">1.2</a>.  Conformance and Error Handling  . . . . . . . . . . . . .   <a href="#page-4">4</a>
+   <a href="#section-2">2</a>.  Links . . . . . . . . . . . . . . . . . . . . . . . . . . . .   <a href="#page-6">6</a>
+     <a href="#section-2.1">2.1</a>.  Link Relation Types . . . . . . . . . . . . . . . . . . .   <a href="#page-6">6</a>
+       <a href="#section-2.1.1">2.1.1</a>.  Registered Relation Types . . . . . . . . . . . . . .   <a href="#page-6">6</a>
+       <a href="#section-2.1.2">2.1.2</a>.  Extension Relation Types  . . . . . . . . . . . . . .   <a href="#page-8">8</a>
+     <a href="#section-2.2">2.2</a>.  Target Attributes . . . . . . . . . . . . . . . . . . . .   <a href="#page-9">9</a>
+   <a href="#section-3">3</a>.  Link Serialisation in HTTP Headers  . . . . . . . . . . . . .   <a href="#page-9">9</a>
+     <a href="#section-3.1">3.1</a>.  Link Target . . . . . . . . . . . . . . . . . . . . . . .  <a href="#page-10">10</a>
+     <a href="#section-3.2">3.2</a>.  Link Context  . . . . . . . . . . . . . . . . . . . . . .  <a href="#page-10">10</a>
+     <a href="#section-3.3">3.3</a>.  Relation Type . . . . . . . . . . . . . . . . . . . . . .  <a href="#page-11">11</a>
+     <a href="#section-3.4">3.4</a>.  Target Attributes . . . . . . . . . . . . . . . . . . . .  <a href="#page-11">11</a>
+       <a href="#section-3.4.1">3.4.1</a>.  Serialisation-Defined Attributes  . . . . . . . . . .  <a href="#page-11">11</a>
+       <a href="#section-3.4.2">3.4.2</a>.  Extension Attributes  . . . . . . . . . . . . . . . .  <a href="#page-13">13</a>
+     <a href="#section-3.5">3.5</a>.  Link Header Field Examples  . . . . . . . . . . . . . . .  <a href="#page-13">13</a>
+   <a href="#section-4">4</a>.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  <a href="#page-14">14</a>
+     <a href="#section-4.1">4.1</a>.  Link HTTP Header Field Registration . . . . . . . . . . .  <a href="#page-14">14</a>
+     <a href="#section-4.2">4.2</a>.  Link Relation Type Registry . . . . . . . . . . . . . . .  <a href="#page-14">14</a>
+     <a href="#section-4.3">4.3</a>.  Link Relation Application Data Registry . . . . . . . . .  <a href="#page-15">15</a>
+   <a href="#section-5">5</a>.  Security Considerations . . . . . . . . . . . . . . . . . . .  <a href="#page-15">15</a>
+   <a href="#section-6">6</a>.  Internationalisation Considerations . . . . . . . . . . . . .  <a href="#page-16">16</a>
+   <a href="#section-7">7</a>.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  <a href="#page-16">16</a>
+     <a href="#section-7.1">7.1</a>.  Normative References  . . . . . . . . . . . . . . . . . .  <a href="#page-16">16</a>
+     <a href="#section-7.2">7.2</a>.  Informative References  . . . . . . . . . . . . . . . . .  <a href="#page-17">17</a>
+   <a href="#appendix-A">Appendix A</a>.  Notes on Other Link Serialisations . . . . . . . . .  <a href="#page-19">19</a>
+     <a href="#appendix-A.1">A.1</a>.  Link Serialisation in HTML  . . . . . . . . . . . . . . .  <a href="#page-19">19</a>
+     <a href="#appendix-A.2">A.2</a>.  Link Serialisation in Atom  . . . . . . . . . . . . . . .  <a href="#page-19">19</a>
+   <a href="#appendix-B">Appendix B</a>.  Algorithms for Parsing Link Header Fields  . . . . .  <a href="#page-20">20</a>
+     <a href="#appendix-B.1">B.1</a>.  Parsing a Header Set for Links  . . . . . . . . . . . . .  <a href="#page-20">20</a>
+     <a href="#appendix-B.2">B.2</a>.  Parsing a Link Field Value  . . . . . . . . . . . . . . .  <a href="#page-21">21</a>
+     <a href="#appendix-B.3">B.3</a>.  Parsing Parameters  . . . . . . . . . . . . . . . . . . .  <a href="#page-22">22</a>
+     <a href="#appendix-B.4">B.4</a>.  Parsing a Quoted String . . . . . . . . . . . . . . . . .  <a href="#page-23">23</a>
+   <a href="#appendix-C">Appendix C</a>.  Changes from <a href="./rfc5988">RFC 5988</a>  . . . . . . . . . . . . . . .  <a href="#page-24">24</a>
+   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .  <a href="#page-24">24</a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                    [Page 3]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-4" id="page-4" href="#page-4" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+<span class="h2"><a class="selflink" name="section-1" href="#section-1">1</a>.  Introduction</span>
+
+   This specification defines a model for the relationships between
+   resources on the Web ("links") and the type of those relationships
+   ("link relation types").
+
+   HTML [<a href="#ref-W3C.REC-html5-20141028" title="&quot;HTML5&quot;">W3C.REC-html5-20141028</a>] and Atom [<a href="./rfc4287" title="&quot;The Atom Syndication Format&quot;">RFC4287</a>] both have well-
+   defined concepts of linking; <a href="#section-2">Section 2</a> generalises this into a
+   framework that encompasses linking in these formats and (potentially)
+   elsewhere.
+
+   Furthermore, <a href="#section-3">Section 3</a> defines an HTTP header field for conveying
+   such links.
+
+<span class="h3"><a class="selflink" name="section-1.1" href="#section-1.1">1.1</a>.  Notational Conventions</span>
+
+   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+   "OPTIONAL" in this document are to be interpreted as described in <a href="./bcp14">BCP</a>
+   <a href="./bcp14">14</a> [<a href="./rfc2119" title="&quot;Key words for use in RFCs to Indicate Requirement Levels&quot;">RFC2119</a>] [<a href="./rfc8174" title="&quot;Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words&quot;">RFC8174</a>] when, and only when, they appear in all
+   capitals, as shown here.
+
+   This document uses the Augmented Backus-Naur Form (ABNF) [<a href="./rfc5234" title="&quot;Augmented BNF for Syntax Specifications: ABNF&quot;">RFC5234</a>]
+   notation of [<a href="./rfc7230" title="&quot;Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing&quot;">RFC7230</a>], including the #rule, and explicitly includes
+   the following rules from it: quoted-string, token, SP (space), BWS
+   (bad whitespace), OWS (optional whitespace), RWS (required
+   whitespace), LOALPHA, DIGIT.
+
+   Additionally, the following rules are included:
+
+   o  URI and URI-Reference from [<a href="./rfc3986" title="&quot;Uniform Resource Identifier (URI): Generic Syntax&quot;">RFC3986</a>],
+   o  type-name and subtype-name from [<a href="./rfc6838" title="&quot;Media Type Specifications and Registration Procedures&quot;">RFC6838</a>],
+   o  media-query-list from [<a href="#ref-W3C.REC-css3-mediaqueries-20120619" title="&quot;Media Queries&quot;">W3C.REC-css3-mediaqueries-20120619</a>], and
+   o  Language-Tag from [<a href="./rfc5646" title="&quot;Tags for Identifying Languages&quot;">RFC5646</a>].
+
+<span class="h3"><a class="selflink" name="section-1.2" href="#section-1.2">1.2</a>.  Conformance and Error Handling</span>
+
+   The requirements regarding conformance and error handling highlighted
+   in <a href="./rfc7230#section-2.5">[RFC7230], Section&nbsp;2.5</a> apply to this document.
+
+
+
+
+
+
+
+
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                    [Page 4]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-5" id="page-5" href="#page-5" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+<span class="h2"><a class="selflink" name="section-2" href="#section-2">2</a>.  Links</span>
+
+   In this specification, a link is a typed connection between two
+   resources and is comprised of:
+
+   o  a link context,
+   o  a link relation type (<a href="#section-2.1">Section 2.1</a>),
+   o  a link target, and
+   o  optionally, target attributes (<a href="#section-2.2">Section 2.2</a>).
+
+   A link can be viewed as a statement of the form "link context has a
+   link relation type resource at link target, which has target
+   attributes".
+
+   For example, "https://www.example.com/" has a "canonical" resource at
+   "https://example.com", which has a "type" of "text/html".
+
+   Link contexts and link targets are both Internationalized Resource
+   Identifiers (IRIs) [<a href="./rfc3987" title="&quot;Internationalized Resource Identifiers (IRIs)&quot;">RFC3987</a>].  However, in the common case, the link
+   context will also be a URI [<a href="./rfc3986" title="&quot;Uniform Resource Identifier (URI): Generic Syntax&quot;">RFC3986</a>], because many protocols (such as
+   HTTP) do not support dereferencing IRIs.  Likewise, the link target
+   will sometimes be converted to a URI (see <a href="./rfc3987#section-3.1">[RFC3987], Section&nbsp;3.1</a>) in
+   serialisations that do not support IRIs (such as the Link header
+   field defined in <a href="#section-3">Section 3</a>).
+
+   This specification does not place restrictions on the cardinality of
+   links; there can be multiple links to and from a particular target
+   and multiple links of the same or different types between a given
+   context and target.  Likewise, the relative ordering of links in any
+   particular serialisation, or between serialisations (e.g., the Link
+   header field and in-content links), is not specified or significant
+   in this specification; applications that wish to consider ordering
+   significant can do so.
+
+   Links are conveyed in link serialisations; they are the "bytes on the
+   wire", and can occur in various forms.  For example, Atom [<a href="./rfc4287" title="&quot;The Atom Syndication Format&quot;">RFC4287</a>]
+   and HTML [<a href="#ref-W3C.REC-html5-20141028" title="&quot;HTML5&quot;">W3C.REC-html5-20141028</a>] both defined serialisations of
+   links into their respective formats, and <a href="#section-3">Section 3</a> defines how to
+   serialise links in HTTP header fields.
+
+   This specification does not define a general syntax for links across
+   different serialisations, nor does it mandate a specific context for
+   any given link; it is expected that serialisations of links will
+   specify both aspects.
+
+   Finally, links are used by link applications.  Generally, an
+   application will define the link relation type(s) it uses, along with
+   the serialisation(s) that they might occur within.  For example, the
+
+
+
+<span class="grey">Nottingham                   Standards Track                    [Page 5]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-6" id="page-6" href="#page-6" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+   application "Web browsing" looks for the "stylesheet" link relation
+   type in the HTML link serialisation (and optionally in the Link
+   header field), whereas the application "AtomPub" uses the "edit" and
+   "edit-media" link relations in the Atom serialisation.
+
+<span class="h3"><a class="selflink" name="section-2.1" href="#section-2.1">2.1</a>.  Link Relation Types</span>
+
+   In the simplest case, a link relation type identifies the semantics
+   of a link.  For example, a link with the relation type "copyright"
+   indicates that the current link context has a copyright resource at
+   the link target.
+
+   Link relation types can also be used to indicate that the target
+   resource has particular attributes, or exhibits particular
+   behaviours; for example, a "service" link implies that the link
+   target can be used as part of a defined protocol (in this case, a
+   service description).
+
+   Relation types are not to be confused with media types [<a href="./rfc2046" title="&quot;Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types&quot;">RFC2046</a>];
+   they do not identify the format of the representation that results
+   when the link is dereferenced.  Rather, they only describe how the
+   current context is related to another resource.
+
+   Relation types SHOULD NOT infer any additional semantics based upon
+   the presence or absence of another link relation type, or its own
+   cardinality of occurrence.  An exception to this is the combination
+   of the "alternate" and "stylesheet" registered relation types, which
+   has special meaning in HTML for historical reasons.
+
+   There are two kinds of relation types: registered and extension.
+
+<span class="h4"><a class="selflink" name="section-2.1.1" href="#section-2.1.1">2.1.1</a>.  Registered Relation Types</span>
+
+   Well-defined relation types can be registered as tokens for
+   convenience and/or to promote reuse by other applications, using the
+   procedure in <a href="#section-2.1.1.1">Section 2.1.1.1</a>.
+
+   Registered relation type names MUST conform to the reg-rel-type rule
+   (see <a href="#section-3.3">Section 3.3</a>) and MUST be compared character by character in a
+   case-insensitive fashion.  They SHOULD be appropriate to the
+   specificity of the relation type; that is, if the semantics are
+   highly specific to a particular application, the name should reflect
+   that, so that more general names are available for less-specific use.
+
+   Registered relation types MUST NOT constrain the media type of the
+   link context and MUST NOT constrain the available representation
+   media types of the link target.  However, they can specify the
+   behaviours and properties of the target resource (e.g., allowable
+
+
+
+<span class="grey">Nottingham                   Standards Track                    [Page 6]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-7" id="page-7" href="#page-7" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+   HTTP methods, and request and response media types that are required
+   be supported).
+
+   Historically, registered relation types have been identified with a
+   URI [<a href="./rfc3986" title="&quot;Uniform Resource Identifier (URI): Generic Syntax&quot;">RFC3986</a>] by prefixing their names with an application-defined
+   base URI (e.g., see <a href="#appendix-A.2">Appendix A.2</a>).  This practice is NOT RECOMMENDED,
+   because the resulting strings will not be considered equivalent to
+   the registered relation types by other applications.  Applications
+   that do use such URIs internally MUST NOT use them in link
+   serialisations that do not explicitly accommodate them.
+
+<span class="h5"><a class="selflink" name="section-2.1.1.1" href="#section-2.1.1.1">2.1.1.1</a>.  Registering Link Relation Types</span>
+
+   The "Link Relations" registry is located at
+   &lt;<a href="https://www.iana.org/assignments/link-relations/">https://www.iana.org/assignments/link-relations/</a>&gt;.  Registration
+   requests can be made by following the instructions located there or
+   by sending an email to the &lt;link-relations@ietf.org&gt; mailing list.
+
+   Registration requests consist of at least the following information:
+
+   o  *Relation Name*: The name of the relation type
+
+   o  *Description*: A short English description of the type's
+      semantics.  It SHOULD be stated in terms of the relationship
+      between the link context and link target.
+
+   o  *Reference*: Reference to the document that specifies the link
+      relation type, preferably including a URI that can be used to
+      retrieve a copy of the document.  An indication of the relevant
+      section(s) can also be included but is not required.
+
+   The expert(s) can define additional fields to be collected in the
+   registry.
+
+   General requirements for registered relation types are described in
+   <a href="#section-2.1.1">Section 2.1.1</a>.
+
+   Registrations MUST reference a freely available, stable
+   specification.
+
+   Note that relation types can be registered by third parties
+   (including the expert(s)), if the expert(s) determines that an
+   unregistered relation type is widely deployed and not likely to be
+   registered in a timely manner otherwise.  Such registrations still
+   are subject to the requirements defined, including the need to
+   reference a specification.
+
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                    [Page 7]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-8" id="page-8" href="#page-8" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+<span class="h5"><a class="selflink" name="section-2.1.1.2" href="#section-2.1.1.2">2.1.1.2</a>.  Registration Request Processing</span>
+
+   Relation types are registered using the Specification Required policy
+   (see <a href="./rfc8126#section-4.6">Section&nbsp;4.6 of [RFC8126]</a>), which implies review and approval by
+   a designated expert.
+
+   The goal of the registry is to reflect common use of links on the
+   Internet.  Therefore, the expert(s) should be strongly biased towards
+   approving registrations, unless they are abusive, frivolous, not
+   likely to be used on the Internet, or actively harmful to the
+   Internet and/or the Web (not merely aesthetically displeasing or
+   architecturally dubious).  As stated in <a href="#section-2.1.1">Section 2.1.1</a>, the expert(s)
+   can withhold registration of names that are too general for the
+   proposed application.
+
+   The expert(s) will clearly identify any issues that cause a
+   registration to be refused.  Advice about the semantics of a proposed
+   link relation type can be given, but if it does not block
+   registration, this should be explicitly stated.
+
+   When a request is approved, the expert(s) will inform IANA, and the
+   registration will be processed.  The IESG is the final arbiter of any
+   objection.
+
+<span class="h4"><a class="selflink" name="section-2.1.2" href="#section-2.1.2">2.1.2</a>.  Extension Relation Types</span>
+
+   Applications that don't wish to register a relation type can use an
+   extension relation type, which is a URI [<a href="./rfc3986" title="&quot;Uniform Resource Identifier (URI): Generic Syntax&quot;">RFC3986</a>] that uniquely
+   identifies the relation type.  Although the URI can point to a
+   resource that contains a definition of the semantics of the relation
+   type, clients SHOULD NOT automatically access that resource to avoid
+   overburdening its server.
+
+   The URI used for an extension relation type SHOULD be under the
+   control of the person or party defining it or be delegated to them.
+
+   When extension relation types are compared, they MUST be compared as
+   strings (after converting to URIs if serialised in a different
+   format) in a case-insensitive fashion, character by character.
+   Because of this, all-lowercase URIs SHOULD be used for extension
+   relations.
+
+   Note that while extension relation types are required to be URIs, a
+   serialisation of links can specify that they are expressed in another
+   form, as long as they can be converted to URIs.
+
+
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                    [Page 8]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-9" id="page-9" href="#page-9" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+<span class="h3"><a class="selflink" name="section-2.2" href="#section-2.2">2.2</a>.  Target Attributes</span>
+
+   Target attributes are a list of key/value pairs that describe the
+   link or its target; for example, a media type hint.
+
+   They can be defined both by individual link relation types and by
+   link serialisations.
+
+   This specification does not attempt to coordinate the name of target
+   attributes, their cardinality, or use.  Those creating and
+   maintaining serialisations SHOULD coordinate their target attributes
+   to avoid conflicts in semantics or syntax and MAY define their own
+   registries of target attributes.
+
+   The names of target attributes SHOULD conform to the token rule, but
+   SHOULD NOT include any of the characters "%", "'", or "*", for
+   portability across serialisations and MUST be compared in a case-
+   insensitive fashion.
+
+   Target attribute definitions SHOULD specify:
+
+   o  The serialisation of their values into Unicode or a subset
+      thereof, to maximise their chances of portability across link
+      serialisations.
+   o  The semantics and error handling of multiple occurrences of the
+      target attribute on a given link.
+
+   This specification does define target attributes for use in the Link
+   HTTP header field in <a href="#section-3.4">Section 3.4</a>.
+
+<span class="h2"><a class="selflink" name="section-3" href="#section-3">3</a>.  Link Serialisation in HTTP Headers</span>
+
+   The Link header field provides a means for serialising one or more
+   links into HTTP headers.
+
+   The ABNF for the field value is:
+
+     Link       = #link-value
+     link-value = "&lt;" URI-Reference "&gt;" *( OWS ";" OWS link-param )
+     link-param = token BWS [ "=" BWS ( token / quoted-string ) ]
+
+   Note that any link-param can be generated with values using either
+   the token or the quoted-string syntax; therefore, recipients MUST be
+   able to parse both forms.  In other words, the following parameters
+   are equivalent:
+
+     x=y
+     x="y"
+
+
+
+<span class="grey">Nottingham                   Standards Track                    [Page 9]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-10" id="page-10" href="#page-10" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+   Previous definitions of the Link header did not equate the token and
+   quoted-string forms explicitly; the title parameter was always
+   quoted, and the hreflang parameter was always a token.  Senders
+   wishing to maximize interoperability will send them in those forms.
+
+   Individual link-params specify their syntax in terms of the value
+   after any necessary unquoting (as per <a href="./rfc7230#section-3.2.6">[RFC7230], Section&nbsp;3.2.6</a>).
+
+   This specification establishes the link-params "rel", "anchor", and
+   "rev" (which are part of the general link model), as well as
+   "hreflang", "media", "title", "title*", and "type" (which are target
+   attributes defined by the serialisation).
+
+<span class="h3"><a class="selflink" name="section-3.1" href="#section-3.1">3.1</a>.  Link Target</span>
+
+   Each link-value conveys one target IRI as a URI-Reference (after
+   conversion to one, if necessary; see <a href="./rfc3987#section-3.1">[RFC3987], Section&nbsp;3.1</a>) inside
+   angle brackets ("&lt;&gt;").  If the URI-Reference is relative, parsers
+   MUST resolve it as per <a href="./rfc3986#section-5">[RFC3986], Section&nbsp;5</a>.  Note that any base IRI
+   appearing in the message's content is not applied.
+
+<span class="h3"><a class="selflink" name="section-3.2" href="#section-3.2">3.2</a>.  Link Context</span>
+
+   By default, the context of a link conveyed in the Link header field
+   is the URL of the representation it is associated with, as defined in
+   <a href="./rfc7231#section-3.1.4.1">[RFC7231], Section&nbsp;3.1.4.1</a>, and is serialised as a URI.
+
+   When present, the anchor parameter overrides this with another URI,
+   such as a fragment of this resource, or a third resource (i.e., when
+   the anchor value is an absolute URI).  If the anchor parameter's
+   value is a relative URI, parsers MUST resolve it as per <a href="./rfc3986#section-5">[RFC3986],
+   Section&nbsp;5</a>.  Note that any base URI from the body's content is not
+   applied.
+
+   The ABNF for the "anchor" parameter's value is:
+
+     URI-Reference ; <a href="./rfc3986#section-4.1">Section&nbsp;4.1 of [RFC3986]</a>
+
+   Link application can choose to ignore links with an anchor parameter.
+   For example, the application in use might not allow the link context
+   to be assigned to a different resource.  In such cases, the entire
+   link is to be ignored; link applications MUST NOT process the link
+   without applying the anchor.
+
+   Note that depending on HTTP status code and response headers, the
+   link context might be "anonymous" (i.e., no link context is
+   available).  For example, this is the case on a 404 response to a GET
+   request.
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 10]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-11" id="page-11" href="#page-11" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+<span class="h3"><a class="selflink" name="section-3.3" href="#section-3.3">3.3</a>.  Relation Type</span>
+
+   The relation type of a link conveyed in the Link header field is
+   conveyed in the "rel" parameter's value.  The rel parameter MUST be
+   present but MUST NOT appear more than once in a given link-value;
+   occurrences after the first MUST be ignored by parsers.
+
+   The rel parameter can, however, contain multiple link relation types.
+   When this occurs, it establishes multiple links that share the same
+   context, target, and target attributes.
+
+   The "rev" parameter has been used in the past to indicate that the
+   semantics of the relationship are in the reverse direction.  That is,
+   a link from A to B with REL="X" expresses the same relationship as a
+   link from B to A with REV="X". rev is deprecated by this
+   specification because it often confuses authors and readers; in most
+   cases, using a separate relation type is preferable.
+
+   The ABNF for the rel and rev parameters' values is:
+
+     relation-type *( 1*SP relation-type )
+
+   where:
+
+     relation-type  = reg-rel-type / ext-rel-type
+     reg-rel-type   = LOALPHA *( LOALPHA / DIGIT / "." / "-" )
+     ext-rel-type   = URI ; <a href="./rfc3986#section-3">Section&nbsp;3 of [RFC3986]</a>
+
+   Note that extension relation types are REQUIRED to be absolute URIs
+   in Link header fields and MUST be quoted when they contain characters
+   not allowed in tokens, such as a semicolon (";") or comma (",") (as
+   these characters are used as delimiters in the header field itself).
+
+<span class="h3"><a class="selflink" name="section-3.4" href="#section-3.4">3.4</a>.  Target Attributes</span>
+
+   The Link header field defines several target attributes specific to
+   this serialisation and also allows extension target attributes.
+   Target attributes are serialised in the Link header field as
+   parameters (see <a href="./rfc7231#section-3.1.1.1">[RFC7231], Section&nbsp;3.1.1.1</a> for the definition of
+   their syntax).
+
+<span class="h4"><a class="selflink" name="section-3.4.1" href="#section-3.4.1">3.4.1</a>.  Serialisation-Defined Attributes</span>
+
+   The "hreflang", "media", "title", "title*", and "type" link-params
+   can be translated to serialisation-defined target attributes for the
+   link.
+
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 11]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-12" id="page-12" href="#page-12" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+   The "hreflang" attribute, when present, is a hint indicating what the
+   language of the result of dereferencing the link should be.  Note
+   that this is only a hint; for example, it does not override the
+   Content-Language header field of a HTTP response obtained by actually
+   following the link.  Multiple hreflang attributes on a single link-
+   value indicate that multiple languages are available from the
+   indicated resource.
+
+   The ABNF for the hreflang parameter's value is:
+
+     Language-Tag
+
+   The "media" attribute, when present, is used to indicate intended
+   destination medium or media for style information (see
+   [<a href="#ref-W3C.REC-html5-20141028" title="&quot;HTML5&quot;">W3C.REC-html5-20141028</a>], Section 4.2.4).  Its value MUST be quoted
+   if it contains a semicolon (";") or comma (",").  There MUST NOT be
+   more than one media attribute in a link-value; occurrences after the
+   first MUST be ignored by parsers.
+
+   The ABNF for the media parameter's value is:
+
+     media-query-list
+
+   The "title" attribute, when present, is used to label the destination
+   of a link such that it can be used as a human-readable identifier
+   (e.g., a menu entry) in the language indicated by the Content-
+   Language header field (if present).  The title attribute MUST NOT
+   appear more than once in a given link; occurrences after the first
+   MUST be ignored by parsers.
+
+   The "title*" link-param can be used to encode this attribute in a
+   different character set and/or contain language information as per
+   [<a href="./rfc8187" title="&quot;Indicating Character Encoding and Language for HTTP Header Field Parameters&quot;">RFC8187</a>].  The title* link-param MUST NOT appear more than once in a
+   given link-value; occurrences after the first MUST be ignored by
+   parsers.  If the attribute does not contain language information, its
+   language is indicated by the Content-Language header field (when
+   present).
+
+   If both the title and title* link-params appear in a link,
+   applications SHOULD use the title* link-param's value for the title
+   attribute.
+
+   The "type" attribute, when present, is a hint indicating what the
+   media type of the result of dereferencing the link should be.  Note
+   that this is only a hint; for example, it does not override the
+   Content-Type header field of a HTTP response obtained by actually
+
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 12]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-13" id="page-13" href="#page-13" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+   following the link.  The type attribute MUST NOT appear more than
+   once in a given link-value; occurrences after the first MUST be
+   ignored by parsers.
+
+   The ABNF for the type parameter's value is:
+
+     type-name "/" subtype-name ; see <a href="./rfc6838#section-4.2">Section&nbsp;4.2 of [RFC6838]</a>
+
+<span class="h4"><a class="selflink" name="section-3.4.2" href="#section-3.4.2">3.4.2</a>.  Extension Attributes</span>
+
+   Other link-params are link-extensions and are to be considered as
+   target attributes.
+
+   Such target attributes MAY be defined to use the encoding in
+   [<a href="./rfc8187" title="&quot;Indicating Character Encoding and Language for HTTP Header Field Parameters&quot;">RFC8187</a>] (e.g., "example" and "example*").  When both forms are
+   present, they SHOULD be considered to be the same target attribute;
+   applications SHOULD use the value of the name ending in "*" (after
+   [<a href="./rfc8187" title="&quot;Indicating Character Encoding and Language for HTTP Header Field Parameters&quot;">RFC8187</a>] decoding) but MAY fall back to the other value if there is
+   an error in decoding it, or if they do not support decoding.
+
+<span class="h3"><a class="selflink" name="section-3.5" href="#section-3.5">3.5</a>.  Link Header Field Examples</span>
+
+   For example:
+
+   Link: &lt;http://example.com/TheBook/chapter2&gt;; rel="previous";
+         title="previous chapter"
+
+   indicates that "chapter2" is previous to this resource in a logical
+   navigation path.
+
+   Similarly,
+
+   Link: &lt;/&gt;; rel="http://example.net/foo"
+
+   indicates that the root resource ("/") is related to this resource
+   with the extension relation type "http://example.net/foo".
+
+   This link:
+
+   Link: &lt;/terms&gt;; rel="copyright"; anchor="#foo"
+
+   indicates that the linked copyright terms only apply to the portion
+   of the document indicated by the (media type-specific) fragment
+   identifier "foo".
+
+   The example below shows an instance of the Link header field encoding
+   multiple links and also the use of the encoding from <a href="./rfc8187">RFC 8187</a> to
+   encode both non-ASCII characters and language information.
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 13]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-14" id="page-14" href="#page-14" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+   Link: &lt;/TheBook/chapter2&gt;;
+         rel="previous"; title*=UTF-8'de'letztes%20Kapitel,
+         &lt;/TheBook/chapter4&gt;;
+         rel="next"; title*=UTF-8'de'n%c3%a4chstes%20Kapitel
+
+   Here, both links have titles encoded in UTF-8, both use the German
+   language ("de"), and the second link contains the Unicode code point
+   U+00E4 ("LATIN SMALL LETTER A WITH DIAERESIS").
+
+   Note that link-values can convey multiple links between the same link
+   target and link context; for example:
+
+   Link: &lt;http://example.org/&gt;;
+         rel="start http://example.net/relation/other"
+
+   Here, the link to "http://example.org/" has the registered relation
+   type "start" and the extension relation type
+   "http://example.net/relation/other".
+
+   Finally, this header field:
+
+   Link: &lt;https://example.org/&gt;; rel="start",
+         &lt;https://example.org/index&gt;; rel="index"
+
+   is equivalent to these:
+
+   Link: &lt;https://example.org/&gt;; rel="start"
+   Link: &lt;https://example.org/index&gt;; rel="index"
+
+<span class="h2"><a class="selflink" name="section-4" href="#section-4">4</a>.  IANA Considerations</span>
+
+<span class="h3"><a class="selflink" name="section-4.1" href="#section-4.1">4.1</a>.  Link HTTP Header Field Registration</span>
+
+   This specification updates the "Message Headers" registry entry for
+   "Link" in HTTP [<a href="./rfc3864" title="&quot;Registration Procedures for Message Header Fields&quot;">RFC3864</a>] to refer to this document.
+
+   Header Field Name: Link
+   Protocol: http
+   Status: standard
+   Reference: <a href="./rfc8288">RFC 8288</a>
+
+<span class="h3"><a class="selflink" name="section-4.2" href="#section-4.2">4.2</a>.  Link Relation Type Registry</span>
+
+   This specification updates the registration procedures for the "Link
+   Relation Types" registry; see <a href="#section-2.1.1.1">Section 2.1.1.1</a>.  Also, all references
+   to <a href="./rfc5988">RFC 5988</a> in that registry have been replaced with references to
+   this document.
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 14]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-15" id="page-15" href="#page-15" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+   IANA will direct any incoming requests regarding the registry to this
+   document and, if defined, the processes established by the expert(s);
+   typically, this will mean referring them to the registry Web page.
+
+   Note that the expert(s) is allowed (as per <a href="#section-2.1.1.1">Section 2.1.1.1</a>) to define
+   additional fields to be collected in the registry.
+
+<span class="h3"><a class="selflink" name="section-4.3" href="#section-4.3">4.3</a>.  Link Relation Application Data Registry</span>
+
+   Per this specification, IANA has removed the "Link Relation
+   Application Data" registry, as it has not been used, and future use
+   is not anticipated.
+
+<span class="h2"><a class="selflink" name="section-5" href="#section-5">5</a>.  Security Considerations</span>
+
+   The content of the Link header field is not secure, private, or
+   integrity-guaranteed.  Use of Transport Layer Security (TLS) with
+   HTTP [<a href="./rfc2818" title="&quot;HTTP Over TLS&quot;">RFC2818</a>] is currently the only end-to-end way to provide these
+   properties.
+
+   Link applications ought to consider the attack vectors opened by
+   automatically following, trusting, or otherwise using links gathered
+   from HTTP header fields.
+
+   For example, Link header fields that use the "anchor" parameter to
+   associate a link's context with another resource cannot be trusted
+   since they are effectively assertions by a third party that could be
+   incorrect or malicious.  Applications can mitigate this risk by
+   specifying that such links should be discarded unless some
+   relationship between the resources is established (e.g., they share
+   the same authority).
+
+   Dereferencing links has a number of risks, depending on the
+   application in use.  For example, the Referer header [<a href="./rfc7231" title="&quot;Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content&quot;">RFC7231</a>] can
+   expose information about the application's state (including private
+   information) in its value.  Likewise, cookies [<a href="./rfc6265" title="&quot;HTTP State Management Mechanism&quot;">RFC6265</a>] are another
+   mechanism that, if used, can become an attack vector.  Applications
+   can mitigate these risks by carefully specifying how such mechanisms
+   should operate.
+
+   The Link header field makes extensive use of IRIs and URIs.  See
+   <a href="./rfc3987#section-8">[RFC3987], Section&nbsp;8</a> for security considerations relating to IRIs.
+   See <a href="./rfc3986#section-7">[RFC3986], Section&nbsp;7</a> for security considerations relating to
+   URIs.  See <a href="./rfc7230#section-9">[RFC7230], Section&nbsp;9</a> for security considerations relating
+   to HTTP header fields.
+
+
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 15]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-16" id="page-16" href="#page-16" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+<span class="h2"><a class="selflink" name="section-6" href="#section-6">6</a>.  Internationalisation Considerations</span>
+
+   Link targets may need to be converted to URIs in order to express
+   them in serialisations that do not support IRIs.  This includes the
+   Link HTTP header field.
+
+   Similarly, the anchor parameter of the Link header field does not
+   support IRIs; therefore, IRIs must be converted to URIs before
+   inclusion there.
+
+   Relation types are defined as URIs, not IRIs, to aid in their
+   comparison.  It is not expected that they will be displayed to end
+   users.
+
+   Note that registered Relation Names are required to be lowercase
+   ASCII letters.
+
+<span class="h2"><a class="selflink" name="section-7" href="#section-7">7</a>.  References</span>
+
+<span class="h3"><a class="selflink" name="section-7.1" href="#section-7.1">7.1</a>.  Normative References</span>
+
+   [<a name="ref-RFC2119" id="ref-RFC2119">RFC2119</a>]  Bradner, S., "Key words for use in RFCs to Indicate
+              Requirement Levels", <a href="./bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a>,
+              DOI 10.17487/RFC2119, March 1997,
+              &lt;<a href="https://www.rfc-editor.org/info/rfc2119">https://www.rfc-editor.org/info/rfc2119</a>&gt;.
+
+   [<a name="ref-RFC3864" id="ref-RFC3864">RFC3864</a>]  Klyne, G., Nottingham, M., and J. Mogul, "Registration
+              Procedures for Message Header Fields", <a href="./bcp90">BCP 90</a>, <a href="./rfc3864">RFC 3864</a>,
+              DOI 10.17487/RFC3864, September 2004,
+              &lt;<a href="https://www.rfc-editor.org/info/rfc3864">https://www.rfc-editor.org/info/rfc3864</a>&gt;.
+
+   [<a name="ref-RFC3986" id="ref-RFC3986">RFC3986</a>]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
+              Resource Identifier (URI): Generic Syntax", STD 66,
+              <a href="./rfc3986">RFC 3986</a>, DOI 10.17487/RFC3986, January 2005,
+              &lt;<a href="https://www.rfc-editor.org/info/rfc3986">https://www.rfc-editor.org/info/rfc3986</a>&gt;.
+
+   [<a name="ref-RFC3987" id="ref-RFC3987">RFC3987</a>]  Duerst, M. and M. Suignard, "Internationalized Resource
+              Identifiers (IRIs)", <a href="./rfc3987">RFC 3987</a>, DOI 10.17487/RFC3987,
+              January 2005, &lt;<a href="https://www.rfc-editor.org/info/rfc3987">https://www.rfc-editor.org/info/rfc3987</a>&gt;.
+
+   [<a name="ref-RFC5234" id="ref-RFC5234">RFC5234</a>]  Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
+              Specifications: ABNF", STD 68, <a href="./rfc5234">RFC 5234</a>,
+              DOI 10.17487/RFC5234, January 2008,
+              &lt;<a href="https://www.rfc-editor.org/info/rfc5234">https://www.rfc-editor.org/info/rfc5234</a>&gt;.
+
+   [<a name="ref-RFC5646" id="ref-RFC5646">RFC5646</a>]  Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying
+              Languages", <a href="./bcp47">BCP 47</a>, <a href="./rfc5646">RFC 5646</a>, DOI 10.17487/RFC5646,
+              September 2009, &lt;<a href="https://www.rfc-editor.org/info/rfc5646">https://www.rfc-editor.org/info/rfc5646</a>&gt;.
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 16]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-17" id="page-17" href="#page-17" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+   [<a name="ref-RFC6838" id="ref-RFC6838">RFC6838</a>]  Freed, N., Klensin, J., and T. Hansen, "Media Type
+              Specifications and Registration Procedures", <a href="./bcp13">BCP 13</a>,
+              <a href="./rfc6838">RFC 6838</a>, DOI 10.17487/RFC6838, January 2013,
+              &lt;<a href="https://www.rfc-editor.org/info/rfc6838">https://www.rfc-editor.org/info/rfc6838</a>&gt;.
+
+   [<a name="ref-RFC7230" id="ref-RFC7230">RFC7230</a>]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
+              Protocol (HTTP/1.1): Message Syntax and Routing",
+              <a href="./rfc7230">RFC 7230</a>, DOI 10.17487/RFC7230, June 2014,
+              &lt;<a href="https://www.rfc-editor.org/info/rfc7230">https://www.rfc-editor.org/info/rfc7230</a>&gt;.
+
+   [<a name="ref-RFC7231" id="ref-RFC7231">RFC7231</a>]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
+              Protocol (HTTP/1.1): Semantics and Content", <a href="./rfc7231">RFC 7231</a>,
+              DOI 10.17487/RFC7231, June 2014,
+              &lt;<a href="https://www.rfc-editor.org/info/rfc7231">https://www.rfc-editor.org/info/rfc7231</a>&gt;.
+
+   [<a name="ref-RFC8126" id="ref-RFC8126">RFC8126</a>]  Cotton, M., Leiba, B., and T. Narten, "Guidelines for
+              Writing an IANA Considerations Section in RFCs", <a href="./bcp26">BCP 26</a>,
+              <a href="./rfc8126">RFC 8126</a>, DOI 10.17487/RFC8126, June 2017,
+              &lt;<a href="https://www.rfc-editor.org/info/rfc8126">https://www.rfc-editor.org/info/rfc8126</a>&gt;.
+
+   [<a name="ref-RFC8174" id="ref-RFC8174">RFC8174</a>]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in <a href="./rfc2119">RFC</a>
+              <a href="./rfc2119">2119</a> Key Words", <a href="./bcp14">BCP 14</a>, <a href="./rfc8174">RFC 8174</a>, DOI 10.17487/RFC8174,
+              May 2017, &lt;<a href="https://www.rfc-editor.org/info/rfc8174">https://www.rfc-editor.org/info/rfc8174</a>&gt;.
+
+   [<a name="ref-RFC8187" id="ref-RFC8187">RFC8187</a>]  Reschke, J., "Indicating Character Encoding and Language
+              for HTTP Header Field Parameters", <a href="./rfc8187">RFC 8187</a>,
+              DOI 10.17487/RFC8187, September 2017,
+              &lt;<a href="https://www.rfc-editor.org/info/rfc8187">https://www.rfc-editor.org/info/rfc8187</a>&gt;.
+
+   [<a name="ref-W3C.REC-css3-mediaqueries-20120619" id="ref-W3C.REC-css3-mediaqueries-20120619">W3C.REC-css3-mediaqueries-20120619</a>]
+              Rivoal, F., "Media Queries", W3C Recommendation
+              REC-css3-mediaqueries-20120619, June 2012,
+              &lt;<a href="http://www.w3.org/TR/2012/REC-css3-mediaqueries-20120619">http://www.w3.org/TR/2012/</a>
+              <a href="http://www.w3.org/TR/2012/REC-css3-mediaqueries-20120619">REC-css3-mediaqueries-20120619</a>&gt;.
+
+<span class="h3"><a class="selflink" name="section-7.2" href="#section-7.2">7.2</a>.  Informative References</span>
+
+   [<a name="ref-RFC2046" id="ref-RFC2046">RFC2046</a>]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
+              Extensions (MIME) Part Two: Media Types", <a href="./rfc2046">RFC 2046</a>,
+              DOI 10.17487/RFC2046, November 1996,
+              &lt;<a href="https://www.rfc-editor.org/info/rfc2046">https://www.rfc-editor.org/info/rfc2046</a>&gt;.
+
+   [<a name="ref-RFC2818" id="ref-RFC2818">RFC2818</a>]  Rescorla, E., "HTTP Over TLS", <a href="./rfc2818">RFC 2818</a>,
+              DOI 10.17487/RFC2818, May 2000,
+              &lt;<a href="https://www.rfc-editor.org/info/rfc2818">https://www.rfc-editor.org/info/rfc2818</a>&gt;.
+
+
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 17]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-18" id="page-18" href="#page-18" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+   [<a name="ref-RFC4287" id="ref-RFC4287">RFC4287</a>]  Nottingham, M., Ed. and R. Sayre, Ed., "The Atom
+              Syndication Format", <a href="./rfc4287">RFC 4287</a>, DOI 10.17487/RFC4287,
+              December 2005, &lt;<a href="https://www.rfc-editor.org/info/rfc4287">https://www.rfc-editor.org/info/rfc4287</a>&gt;.
+
+   [<a name="ref-RFC6265" id="ref-RFC6265">RFC6265</a>]  Barth, A., "HTTP State Management Mechanism", <a href="./rfc6265">RFC 6265</a>,
+              DOI 10.17487/RFC6265, April 2011,
+              &lt;<a href="https://www.rfc-editor.org/info/rfc6265">https://www.rfc-editor.org/info/rfc6265</a>&gt;.
+
+   [<a name="ref-W3C.REC-html5-20141028" id="ref-W3C.REC-html5-20141028">W3C.REC-html5-20141028</a>]
+              Hickson, I., Berjon, R., Faulkner, S., Leithead, T.,
+              Navara, E., O'Connor, T., and S. Pfeiffer, "HTML5", W3C
+              Recommendation REC-html5-20141028, October 2014,
+              &lt;<a href="http://www.w3.org/TR/2014/REC-html5-20141028">http://www.w3.org/TR/2014/REC-html5-20141028</a>&gt;.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 18]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-19" id="page-19" href="#page-19" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+<span class="h2"><a class="selflink" name="appendix-A" href="#appendix-A">Appendix A</a>.  Notes on Other Link Serialisations</span>
+
+   Header fields (<a href="#section-3">Section 3</a>) are only one serialisation of links; other
+   specifications have defined alternative serialisations.
+
+<span class="h3"><a class="selflink" name="appendix-A.1" href="#appendix-A.1">A.1</a>.  Link Serialisation in HTML</span>
+
+   HTML motivated the original syntax of the Link header field, and many
+   of the design decisions in this document are driven by a desire to
+   stay compatible with it.
+
+   In HTML, the link element can be mapped to links as specified here by
+   using the "href" attribute for the target URI, and "rel" to convey
+   the relation type, as in the Link header field.  The context of the
+   link is the URI associated with the entire HTML document.  HTML also
+   defines several attributes on links that can be seen as target
+   attributes, including "media", "hreflang", "type", and "sizes".
+
+   <a href="#section-4.8">Section 4.8</a> of HTML5 [<a href="#ref-W3C.REC-html5-20141028" title="&quot;HTML5&quot;">W3C.REC-html5-20141028</a>] defines modern HTML
+   links.  That document links to the Microformats Wiki as a registry;
+   over time, the IANA registry ought to mirror its contents and,
+   ideally, eventually replace it (although that depends on the HTML
+   community).
+
+   Surveys of existing HTML content have shown that unregistered link
+   relation types that are not URIs are (perhaps inevitably) common.
+   Consuming HTML implementations ought not consider such unregistered
+   short links to be errors, but rather relation types with a local
+   scope (i.e., their meaning is specific and perhaps private to that
+   document).
+
+   Finally, the HTML specification gives a special meaning when the
+   "alternate" relation types coincide with other relation types in the
+   same link.  Such links ought to be serialised in the Link header
+   field using a single list of relation-types (e.g., rel="alternate
+   stylesheet") to preserve this relationship.
+
+<span class="h3"><a class="selflink" name="appendix-A.2" href="#appendix-A.2">A.2</a>.  Link Serialisation in Atom</span>
+
+   Atom [<a href="./rfc4287" title="&quot;The Atom Syndication Format&quot;">RFC4287</a>] is a link serialisation that conveys links in the
+   atom:link element, with the "href" attribute indicating the link
+   target and the "rel" attribute containing the relation type.  The
+   context of the link is either a feed locator or an entry ID,
+   depending on where it appears; generally, feed-level links are
+   obvious candidates for transmission as a Link header field.
+
+   When serialising an atom:link into a Link header field, it is
+   necessary to convert link targets (if used) to URIs.
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 19]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-20" id="page-20" href="#page-20" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+   Atom defines extension relation types in terms of IRIs.  This
+   specification redefines them as URIs, to simplify and reduce errors
+   in their comparison.
+
+   Atom allows registered link relation types to be serialised as
+   absolute URIs using a prefix, "<a href="http://www.iana.org/assignments/relation/">http://www.iana.org/assignments/</a>
+   <a href="http://www.iana.org/assignments/relation/">relation/</a>".  This prefix is specific to the Atom serialisation.
+
+   Furthermore, link relation types are always compared in a case-
+   sensitive fashion; therefore, registered link relation types SHOULD
+   be converted to their registered form (usually, lowercase) when
+   serialised in an Atom document.
+
+   Note also that while the Link header field allows multiple relations
+   to be serialised in a single link, atom:link does not.  In this case,
+   a single link-value may map to several atom:link elements.
+
+   As with HTML, atom:link defines some attributes that are not
+   explicitly mirrored in the Link header field syntax, but they can
+   also be used as link-extensions to maintain fidelity.
+
+<span class="h2"><a class="selflink" name="appendix-B" href="#appendix-B">Appendix B</a>.  Algorithms for Parsing Link Header Fields</span>
+
+   This appendix outlines a set of non-normative algorithms: for parsing
+   the Link header(s) out of a header set, for parsing a Link header
+   field value, and algorithms for parsing generic parts of the field
+   value.
+
+   These algorithms are more permissive than the ABNF defining the
+   syntax might suggest; the error handling embodied in them is a
+   reasonable approach, but not one that is required.  As such they are
+   advisory only, and in cases where there is disagreement, the correct
+   behaviour is defined by the body of this specification.
+
+<span class="h3"><a class="selflink" name="appendix-B.1" href="#appendix-B.1">B.1</a>.  Parsing a Header Set for Links</span>
+
+   This algorithm can be used to parse the Link header fields that a
+   HTTP header set contains.  Given a header_set of (string field_name,
+   string field_value) pairs, assuming ASCII encoding, it returns a list
+   of link objects.
+
+   1.  Let field_values be a list containing the members of header_set
+       whose field_name is a case-insensitive match for "link".
+
+   2.  Let links be an empty list.
+
+
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 20]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-21" id="page-21" href="#page-21" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+   3.  For each field_value in field_values:
+       1.  Let value_links be the result of Parsing a Link Field Value
+           (Appendix B.2) from field_value.
+       2.  Append each member of value_links to links.
+
+   4.  Return links.
+
+<span class="h3"><a class="selflink" name="appendix-B.2" href="#appendix-B.2">B.2</a>.  Parsing a Link Field Value</span>
+
+   This algorithm parses zero or more comma-separated link-values from a
+   Link header field.  Given a string field_value, assuming ASCII
+   encoding, it returns a list of link objects.
+
+   1.  Let links be an empty list.
+
+   2.  While field_value has content:
+       1.   Consume any leading OWS.
+       2.   If the first character is not "&lt;", return links.
+       3.   Discard the first character ("&lt;").
+       4.   Consume up to but not including the first "&gt;" character or
+            end of field_value and let the result be target_string.
+       5.   If the next character is not "&gt;", return links.
+       6.   Discard the leading "&gt;" character.
+       7.   Let link_parameters be the result of Parsing Parameters
+            (Appendix B.3) from field_value (consuming zero or more
+            characters of it).
+       8.   Let target_uri be the result of relatively resolving (as per
+            <a href="./rfc3986#section-5.2">[RFC3986], Section&nbsp;5.2</a>) target_string.  Note that any base
+            URI carried in the payload body is NOT used.
+       9.   Let relations_string be the second item of the first tuple
+            of link_parameters whose first item matches the string "rel"
+            or the empty string ("") if it is not present.
+       10.  Split relations_string on RWS (removing it in the process)
+            into a list of string relation_types.
+       11.  Let context_string be the second item of the first tuple of
+            link_parameters whose first item matches the string
+            "anchor".  If it is not present, context_string is the URL
+            of the representation carrying the Link header <a href="./rfc7231#section-3.1.4.1">[RFC7231],
+            Section&nbsp;3.1.4.1</a>, serialised as a URI.  Where the URL is
+            anonymous, context_string is null.
+       12.  Let context_uri be the result of relatively resolving (as
+            per <a href="./rfc3986#section-5.2">[RFC3986], Section&nbsp;5.2</a>) context_string, unless
+            context_string is null, in which case context is null.  Note
+            that any base URI carried in the payload body is NOT used.
+       13.  Let target_attributes be an empty list.
+
+
+
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 21]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-22" id="page-22" href="#page-22" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+       14.  For each tuple (param_name, param_value) of link_parameters:
+            1.  If param_name matches "rel" or "anchor", skip this
+                tuple.
+            2.  If param_name matches "media", "title", "title*", or
+                "type" and target_attributes already contains a tuple
+                whose first element matches the value of param_name,
+                skip this tuple.
+            3.  Append (param_name, param_value) to target_attributes.
+       15.  Let star_param_names be the set of param_names in the
+            (param_name, param_value) tuples of link_parameters where
+            the last character of param_name is an asterisk ("*").
+       16.  For each star_param_name in star_param_names:
+            1.  Let base_param_name be star_param_name with the last
+                character removed.
+            2.  If the implementation does not choose to support an
+                internationalised form of a parameter named
+                base_param_name for any reason (including, but not
+                limited to, it being prohibited by the parameter's
+                specification), remove all tuples from link_parameters
+                whose first member is star_param_name, and skip to the
+                next star_param_name.
+            3.  Remove all tuples from link_parameters whose first
+                member is base_param_name.
+            4.  Change the first member of all tuples in link_parameters
+                whose first member is star_param_name to
+                base_param_name.
+       17.  For each relation_type in relation_types:
+            1.  Case-normalise relation_type to lowercase.
+            2.  Append a link object to links with the target
+                target_uri, relation type of relation_type, context of
+                context_uri, and target attributes target_attributes.
+
+   3.  Return links.
+
+<span class="h3"><a class="selflink" name="appendix-B.3" href="#appendix-B.3">B.3</a>.  Parsing Parameters</span>
+
+   This algorithm parses the parameters from a header field value.
+   Given input, an ASCII string, it returns a list of (string
+   parameter_name, string parameter_value) tuples that it contains.
+   input is modified to remove the parsed parameters.
+
+   1.  Let parameters be an empty list.
+
+   2.  While input has content:
+       1.   Consume any leading OWS.
+       2.   If the first character is not ";", return parameters.
+       3.   Discard the leading ";" character.
+       4.   Consume any leading OWS.
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 22]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-23" id="page-23" href="#page-23" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+       5.   Consume up to but not including the first BWS, "=", ";", or
+            "," character, or up to the end of input, and let the result
+            be parameter_name.
+       6.   Consume any leading BWS.
+       7.   If the next character is "=":
+            1.  Discard the leading "=" character.
+            2.  Consume any leading BWS.
+            3.  If the next character is DQUOTE, let parameter_value be
+                the result of Parsing a Quoted String (Appendix B.4)
+                from input (consuming zero or more characters of it).
+            4.  Else, consume the contents up to but not including the
+                first ";" or "," character, or up to the end of input,
+                and let the results be parameter_value.
+            5.  If the last character of parameter_name is an asterisk
+                ("*"), decode parameter_value according to [<a href="./rfc8187" title="&quot;Indicating Character Encoding and Language for HTTP Header Field Parameters&quot;">RFC8187</a>].
+                Continue processing input if an unrecoverable error is
+                encountered.
+       8.   Else:
+            1.  Let parameter_value be an empty string.
+       9.   Case-normalise parameter_name to lowercase.
+       10.  Append (parameter_name, parameter_value) to parameters.
+       11.  Consume any leading OWS.
+       12.  If the next character is "," or the end of input, stop
+            processing input and return parameters.
+
+<span class="h3"><a class="selflink" name="appendix-B.4" href="#appendix-B.4">B.4</a>.  Parsing a Quoted String</span>
+
+   This algorithm parses a quoted string, as per <a href="./rfc7230#section-3.2.6">[RFC7230],
+   Section&nbsp;3.2.6</a>.  Given input, an ASCII string, it returns an unquoted
+   string. input is modified to remove the parsed string.
+
+   1.  Let output be an empty string.
+
+   2.  If the first character of input is not DQUOTE, return output.
+
+   3.  Discard the first character.
+
+   4.  While input has content:
+       1.  If the first character is a backslash ("\"):
+           1.  Discard the first character.
+           2.  If there is no more input, return output.
+           3.  Else, consume the first character and append it to
+               output.
+       2.  Else, if the first character is DQUOTE, discard it and return
+           output.
+       3.  Else, consume the first character and append it to output.
+
+   5.  Return output.
+
+
+
+<span class="grey">Nottingham                   Standards Track                   [Page 23]</span></pre>
+<hr class='noprint' style='width: 96ex;' align='left'/><!--NewPage--><pre class='newpage'><a name="page-24" id="page-24" href="#page-24" class="invisible"> </a>
+<span class="grey"><a href="./rfc8288">RFC 8288</a>                       Web Linking                  October 2017</span>
+
+
+<span class="h2"><a class="selflink" name="appendix-C" href="#appendix-C">Appendix C</a>.  Changes from <a href="./rfc5988">RFC 5988</a></span>
+
+   This specification has the following differences from its
+   predecessor, <a href="./rfc5988">RFC 5988</a>:
+
+   o  The initial relation type registrations were removed, since
+      they've already been registered by <a href="./rfc5988">RFC 5988</a>.
+   o  The introduction has been shortened.
+   o  The "Link Relation Application Data" registry has been removed.
+   o  Incorporated errata.
+   o  Updated references.
+   o  Link cardinality was clarified.
+   o  Terminology was changed from "target IRI" and "context IRI" to
+      "link target" and "link context", respectively.
+   o  Made assigning a URI to registered relation types serialisation
+      specific.
+   o  Removed misleading statement that the Link header field is
+      semantically equivalent to HTML and Atom links.
+   o  More carefully defined and used "link serialisations" and "link
+      applications."
+   o  Clarified the cardinality of target attributes (generically and
+      for "type").
+   o  Corrected the default link context for the Link header field, to
+      be dependent upon the identity of the representation (as per
+      <a href="./rfc7231">RFC 7231</a>).
+   o  Defined a suggested parsing algorithm for the Link header.
+   o  The value space of target attributes and their definition has been
+      specified.
+   o  The ABNF has been updated to be compatible with [<a href="./rfc7230" title="&quot;Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing&quot;">RFC7230</a>].  In
+      particular, whitespace is now explicit.
+   o  Some parameters on the HTTP header field can now appear as a
+      token.
+   o  Parameters on the HTTP header can now be valueless.
+   o  Handling of quoted strings is now defined by [<a href="./rfc7230" title="&quot;Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing&quot;">RFC7230</a>].
+   o  The "type" header field parameter now needs to be quoted (as
+      "token" does not allow "/").
+
+Author's Address
+
+   Mark Nottingham
+
+   Email: mnot@mnot.net
+   URI:   <a href="https://www.mnot.net/">https://www.mnot.net/</a>
+
+
+
+
+
+
+
+
+Nottingham                   Standards Track                   [Page 24]
+
+</pre><br />
+    <span class="noprint"><small><small>Html markup produced by rfcmarkup 1.129d, available from
+      <a href="https://tools.ietf.org/tools/rfcmarkup/">https://tools.ietf.org/tools/rfcmarkup/</a>
+    </small></small></span>
+  </div>
+</body>
+</html>