Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Initial link-template

  • Loading branch information...
commit 94db5ac1af87217eb2f9e2b7d9fac1245ad5750f 1 parent ae5e6b2
@mnot authored
View
45 link-template/Makefile
@@ -0,0 +1,45 @@
+# Base directory for I-D
+ID_BASE = ..
+
+saxpath = "/usr/local/share/saxon-b/saxon9.jar"
+saxon = java -classpath $(saxpath) net.sf.saxon.Transform -novw -l
+stylesheet = "$(ID_BASE)/Tools/rfc2629xslt/rfc2629.xslt"
+xml2rfc = "$(ID_BASE)/Tools/xml2rfc/xml2rfc.tcl"
+
+TITLE = nottingham-$(shell basename ${CURDIR})
+LATEST = $(shell ls draft-${TITLE}-*.xml | sort | tail -1)
+VERSION = $(shell basename ${LATEST} .xml | awk -F- '{print $$NF}')
+
+TARGET_XML = draft-$(TITLE)-$(VERSION).xml
+PREV_TXT = draft-$(TITLE)-$(shell printf "%.2d" `echo ${VERSION}-1 | bc`).txt
+NEXT_XML = draft-$(TITLE)-$(shell printf "%.2d" `echo ${VERSION}+1 | bc`).xml
+
+TARGET_HTML = $(TARGET_XML:.xml=.html)
+TARGET_TXT = $(TARGET_XML:.xml=.txt)
+TARGETS = $(TARGET_HTML) \
+ $(TARGET_TXT)
+
+.PHONY: all
+all: $(TARGETS)
+
+.PHONY: clean
+clean:
+ rm -f $(TARGETS)
+
+.PHONY: next
+next:
+ cp $(TARGET_XML) $(NEXT_XML)
+
+.PHONY: diff
+diff:
+ rfcdiff $(PREV_TXT) $(TARGET_TXT)
+
+.PHONY: idnits
+idnits: $(TARGET_TXT)
+ idnits $<
+
+%.html: %.xml
+ $(saxon) $< $(stylesheet) > $@
+
+%.txt: %.xml
+ $(xml2rfc) $< $@
View
306 link-template/draft-nottingham-link-template-00.html
@@ -0,0 +1,306 @@
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html lang="en"><head profile="http://www.w3.org/2006/03/hcard http://dublincore.org/documents/2008/08/04/dc-html/"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>The Link-Template HTTP Header Field</title><style type="text/css" title="Xml2Rfc (sans serif)">
+a {
+ text-decoration: none;
+}
+a.smpl {
+ color: black;
+}
+a:hover {
+ text-decoration: underline;
+}
+a:active {
+ text-decoration: underline;
+}
+address {
+ margin-top: 1em;
+ margin-left: 2em;
+ font-style: normal;
+}
+body {
+ color: black;
+ font-family: verdana, helvetica, arial, sans-serif;
+ font-size: 10pt;
+}
+cite {
+ font-style: normal;
+}
+dd {
+ margin-right: 2em;
+}
+dl {
+ margin-left: 2em;
+}
+
+ul.empty {
+ list-style-type: none;
+}
+ul.empty li {
+ margin-top: .5em;
+}
+dl p {
+ margin-left: 0em;
+}
+dt {
+ margin-top: .5em;
+}
+h1 {
+ font-size: 14pt;
+ line-height: 21pt;
+ page-break-after: avoid;
+}
+h1.np {
+ page-break-before: always;
+}
+h1 a {
+ color: #333333;
+}
+h2 {
+ font-size: 12pt;
+ line-height: 15pt;
+ page-break-after: avoid;
+}
+h3, h4, h5, h6 {
+ font-size: 10pt;
+ page-break-after: avoid;
+}
+h2 a, h3 a, h4 a, h5 a, h6 a {
+ color: black;
+}
+img {
+ margin-left: 3em;
+}
+li {
+ margin-left: 2em;
+ margin-right: 2em;
+}
+ol {
+ margin-left: 2em;
+ margin-right: 2em;
+}
+ol.la {
+ list-style-type: lower-alpha;
+}
+ol.ua {
+ list-style-type: upper-alpha;
+}
+ol p {
+ margin-left: 0em;
+}
+p {
+ margin-left: 2em;
+ margin-right: 2em;
+}
+pre {
+ margin-left: 3em;
+ background-color: lightyellow;
+ padding: .25em;
+}
+pre.text2 {
+ border-style: dotted;
+ border-width: 1px;
+ background-color: #f0f0f0;
+ width: 69em;
+}
+pre.inline {
+ background-color: white;
+ padding: 0em;
+}
+pre.text {
+ border-style: dotted;
+ border-width: 1px;
+ background-color: #f8f8f8;
+ width: 69em;
+}
+pre.drawing {
+ border-style: solid;
+ border-width: 1px;
+ background-color: #f8f8f8;
+ padding: 2em;
+}
+table {
+ margin-left: 2em;
+}
+table.header {
+ border-spacing: 1px;
+ width: 95%;
+ font-size: 10pt;
+ color: white;
+}
+td.top {
+ vertical-align: top;
+}
+td.topnowrap {
+ vertical-align: top;
+ white-space: nowrap;
+}
+table.header td {
+ background-color: gray;
+ width: 50%;
+}
+table.header a {
+ color: white;
+}
+td.reference {
+ vertical-align: top;
+ white-space: nowrap;
+ padding-right: 1em;
+}
+thead {
+ display:table-header-group;
+}
+ul.toc, ul.toc ul {
+ list-style: none;
+ margin-left: 1.5em;
+ margin-right: 0em;
+ padding-left: 0em;
+}
+ul.toc li {
+ line-height: 150%;
+ font-weight: bold;
+ font-size: 10pt;
+ margin-left: 0em;
+ margin-right: 0em;
+}
+ul.toc li li {
+ line-height: normal;
+ font-weight: normal;
+ font-size: 9pt;
+ margin-left: 0em;
+ margin-right: 0em;
+}
+li.excluded {
+ font-size: 0pt;
+}
+ul p {
+ margin-left: 0em;
+}
+
+.comment {
+ background-color: yellow;
+}
+.center {
+ text-align: center;
+}
+.error {
+ color: red;
+ font-style: italic;
+ font-weight: bold;
+}
+.figure {
+ font-weight: bold;
+ text-align: center;
+ font-size: 9pt;
+}
+.filename {
+ color: #333333;
+ font-weight: bold;
+ font-size: 12pt;
+ line-height: 21pt;
+ text-align: center;
+}
+.fn {
+ font-weight: bold;
+}
+.hidden {
+ display: none;
+}
+.left {
+ text-align: left;
+}
+.right {
+ text-align: right;
+}
+.title {
+ color: #990000;
+ font-size: 18pt;
+ line-height: 18pt;
+ font-weight: bold;
+ text-align: center;
+ margin-top: 36pt;
+}
+.vcardline {
+ display: block;
+}
+.warning {
+ font-size: 14pt;
+ background-color: yellow;
+}
+
+
+@media print {
+ .noprint {
+ display: none;
+ }
+
+ a {
+ color: black;
+ text-decoration: none;
+ }
+
+ table.header {
+ width: 90%;
+ }
+
+ td.header {
+ width: 50%;
+ color: black;
+ background-color: white;
+ vertical-align: top;
+ font-size: 12pt;
+ }
+
+ ul.toc a::after {
+ content: leader('.') target-counter(attr(href), page);
+ }
+
+ ul.ind li li a {
+ content: target-counter(attr(href), page);
+ }
+
+ .print2col {
+ column-count: 2;
+ -moz-column-count: 2;
+ column-fill: auto;
+ }
+}
+
+@page {
+ @top-left {
+ content: "Internet-Draft";
+ }
+ @top-right {
+ content: "July 2012";
+ }
+ @top-center {
+ content: "The Link-Template HTTP Header Field";
+ }
+ @bottom-left {
+ content: "Nottingham";
+ }
+ @bottom-center {
+ content: "Expires January 4, 2013";
+ }
+ @bottom-right {
+ content: "[Page " counter(page) "]";
+ }
+}
+
+@page:first {
+ @top-left {
+ content: normal;
+ }
+ @top-right {
+ content: normal;
+ }
+ @top-center {
+ content: normal;
+ }
+}
+</style><link rel="Contents" href="#rfc.toc"><link rel="Author" href="#rfc.authors"><link rel="Copyright" href="#rfc.copyrightnotice"><link rel="Chapter" title="1 Introduction" href="#rfc.section.1"><link rel="Chapter" title="2 Requirements" href="#rfc.section.2"><link rel="Chapter" title="3 Notational Conventions" href="#rfc.section.3"><link rel="Chapter" title="4 The Link-Template Header Field" href="#rfc.section.4"><link rel="Chapter" title="5 Examples" href="#rfc.section.5"><link rel="Chapter" title="6 Security Considerations" href="#rfc.section.6"><link rel="Chapter" title="7 IANA Considerations" href="#rfc.section.7"><link rel="Chapter" href="#rfc.section.8" title="8 References"><meta name="generator" content="http://greenbytes.de/tech/webdav/rfc2629.xslt, Revision 1.576, 2012-05-02 14:26:45, XSLT vendor: SAXON 9.1.0.8 from Saxonica http://www.saxonica.com/"><link rel="schema.dct" href="http://purl.org/dc/terms/"><meta name="dct.creator" content="Nottingham, M."><meta name="dct.identifier" content="urn:ietf:id:draft-nottingham-link-template-00"><meta name="dct.issued" scheme="ISO8601" content="2012-07-03"><meta name="dct.abstract" content="This specification defines the Link-Template HTTP header field, providing a means for describing the structure of a link between two resources, so that new links can be generated."><meta name="description" content="This specification defines the Link-Template HTTP header field, providing a means for describing the structure of a link between two resources, so that new links can be generated."></head><body><table class="header"><tbody><tr><td class="left">Network Working Group</td><td class="right">M. Nottingham</td></tr><tr><td class="left">Internet-Draft</td><td class="right">Rackspace</td></tr><tr><td class="left">Intended status: Informational</td><td class="right">July 3, 2012</td></tr><tr><td class="left">Expires: January 4, 2013</td><td class="right"></td></tr></tbody></table><p class="title">The Link-Template HTTP Header Field<br><span class="filename">draft-nottingham-link-template-00</span></p><h1 id="rfc.abstract"><a href="#rfc.abstract">Abstract</a></h1><p>This specification defines the Link-Template HTTP header field, providing a means for describing the structure of a link between two resources, so that new links can be generated.</p><h1><a id="rfc.status" href="#rfc.status">Status of this Memo</a></h1><p>This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.</p><p>Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at <a href="http://datatracker.ietf.org/drafts/current/">http://datatracker.ietf.org/drafts/current/</a>.</p><p>Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as &#8220;work in progress&#8221;.</p><p>This Internet-Draft will expire on January 4, 2013.</p><h1><a id="rfc.copyrightnotice" href="#rfc.copyrightnotice">Copyright Notice</a></h1><p>Copyright © 2012 IETF Trust and the persons identified as the document authors. All rights reserved.</p><p>This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (<a href="http://trustee.ietf.org/license-info">http://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.</p><hr class="noprint"><h1 class="np" id="rfc.toc"><a href="#rfc.toc">Table of Contents</a></h1><ul class="toc"><li>1.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.1">Introduction</a></li><li>2.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.2">Requirements</a></li><li>3.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.3">Notational Conventions</a></li><li>4.&nbsp;&nbsp;&nbsp;<a href="#header">The Link-Template Header Field</a></li><li>5.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.5">Examples</a></li><li>6.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.6">Security Considerations</a></li><li>7.&nbsp;&nbsp;&nbsp;<a href="#rfc.section.7">IANA Considerations</a></li><li>8.&nbsp;&nbsp;&nbsp;<a href="#rfc.references">References</a><ul><li>8.1&nbsp;&nbsp;&nbsp;<a href="#rfc.references.1">Normative References</a></li><li>8.2&nbsp;&nbsp;&nbsp;<a href="#rfc.references.2">Informative References</a></li></ul></li><li><a href="#rfc.authors">Author's Address</a></li></ul><h1 id="rfc.section.1" class="np"><a href="#rfc.section.1">1.</a>&nbsp;Introduction</h1><p id="rfc.section.1.p.1"><a href="#RFC6570"><cite title="URI Template">[RFC6570]</cite></a> defines a syntax for templates that, when expanded using a set of variables, results in a URI <a href="#RFC3986"><cite title="Uniform Resource Identifier (URI): Generic Syntax">[RFC3986]</cite></a>.</p><p id="rfc.section.1.p.2">This specification defines a HTTP header field for conveying templated links in the headers of a HTTP message. It is complimentary to the Link header field <a href="#RFC5988"><cite title="Web Linking">[RFC5988]</cite></a>, which carries links directly.</p><h1 id="rfc.section.2"><a href="#rfc.section.2">2.</a>&nbsp;Requirements</h1><p id="rfc.section.2.p.1">The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <a href="#RFC2119"><cite title="Key words for use in RFCs to Indicate Requirement Levels">[RFC2119]</cite></a>.</p><h1 id="rfc.section.3"><a href="#rfc.section.3">3.</a>&nbsp;Notational Conventions</h1><p id="rfc.section.3.p.1">This document uses the Augmented BNF defined in <a href="#RFC2616"><cite title="Hypertext Transfer Protocol -- HTTP/1.1">[RFC2616]</cite></a> to specify valid protocol elements.</p><p id="rfc.section.3.p.2">Additionally, it uses the modified "parameter" rule from <a href="#RFC5987"><cite title="Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters">[RFC5987]</cite></a>, and the "URI-Template" rule from <a href="#RFC6570"><cite title="URI Template">[RFC6570]</cite></a>.</p><h1 id="rfc.section.4"><a href="#rfc.section.4">4.</a>&nbsp;<a id="header" href="#header">The Link-Template Header Field</a></h1><p id="rfc.section.4.p.1">The Link-Template entity-header field provides a means for serialising one or more links into HTTP headers. It is semantically equivalent to the Link header field <a href="#RFC5988"><cite title="Web Linking">[RFC5988]</cite></a>, except that it uses URI Templates <a href="#RFC6570"><cite title="URI Template">[RFC6570]</cite></a> to convey the structure of links.</p><div id="rfc.figure.u.1"></div><pre>
+ Link-Template = "Link-Template" ":" #linkt-value
+ linkt-value = "&lt;" URI-Template "&gt;" *( ";" parameter )
+</pre><p id="rfc.section.4.p.3">The target for the link (as defined by <a href="#RFC5988"><cite title="Web Linking">[RFC5988]</cite></a>) is the result of expanding the URI Template <a href="#RFC6570"><cite title="URI Template">[RFC6570]</cite></a> (being converted to an absolute URI after expansion, if necessary).</p><p id="rfc.section.4.p.4">The context, relation type and target attributes for the link are determined as defined for the Link header field in <a href="#RFC5988"><cite title="Web Linking">[RFC5988]</cite></a>.</p><p id="rfc.section.4.p.5">The parameters on a linkt-value have identical semantics to those of a Link header field <a href="#RFC5988"><cite title="Web Linking">[RFC5988]</cite></a>. This includes (but is not limited to) the use of the "rel" parameter to convey the relation type, the "anchor" parameter to modify the context IRI, and so on.</p><p id="rfc.section.4.p.6">Likewise, the requirements for parameters on linkt-values are the same as those for a Link header field; in particular, the "rel" parameter MUST NOT appear more than once, and if it does, the linkt-value MUST be ignored by parsers.</p><h1 id="rfc.section.5"><a href="#rfc.section.5">5.</a>&nbsp;Examples</h1><p id="rfc.section.5.p.1">For example:</p><div id="rfc.figure.u.2"></div><pre>
+Link-Template: &lt;/{username}&gt;; rel="http://example.org/rel/user"
+</pre><p id="rfc.section.5.p.3">indicates that a resource with the relation type "http://example.org/rel/user" can be found by interpolating the "username" variable into the template given.</p><p id="rfc.section.5.p.4">Similarly,</p><h1 id="rfc.section.6"><a href="#rfc.section.6">6.</a>&nbsp;Security Considerations</h1><p id="rfc.section.6.p.1">The security consideration for the Link header field in <a href="#RFC5988"><cite title="Web Linking">[RFC5988]</cite></a> and those for URI Templates <a href="#RFC6570"><cite title="URI Template">[RFC6570]</cite></a> both apply.</p><h1 id="rfc.section.7"><a href="#rfc.section.7">7.</a>&nbsp;IANA Considerations</h1><p id="rfc.section.7.p.1">This specification enters the "Link-Template" into the registry of Permanent Message Header Field Names.</p><ul><li>Header Field Name: Link-Template</li><li>Protocol: http</li><li>Status:</li><li>Reference: [this document]</li></ul><h1 id="rfc.references"><a id="rfc.section.8" href="#rfc.section.8">8.</a> References</h1><h2 id="rfc.references.1"><a href="#rfc.section.8.1" id="rfc.section.8.1">8.1</a> Normative References</h2><table><tr><td class="reference"><b id="RFC2119">[RFC2119]</b></td><td class="top"><a href="mailto:sob@harvard.edu" title="Harvard University">Bradner, S.</a>, &#8220;<a href="http://tools.ietf.org/html/rfc2119">Key words for use in RFCs to Indicate Requirement Levels</a>&#8221;, BCP&nbsp;14, RFC&nbsp;2119, March&nbsp;1997.</td></tr><tr><td class="reference"><b id="RFC2616">[RFC2616]</b></td><td class="top"><a href="mailto:fielding@ics.uci.edu" title="Department of Information and Computer Science">Fielding, R.</a>, <a href="mailto:jg@w3.org" title="World Wide Web Consortium">Gettys, J.</a>, <a href="mailto:mogul@wrl.dec.com" title="Compaq Computer Corporation">Mogul, J.</a>, <a href="mailto:frystyk@w3.org" title="World Wide Web Consortium">Frystyk, H.</a>, <a href="mailto:masinter@parc.xerox.com" title="Xerox Corporation">Masinter, L.</a>, <a href="mailto:paulle@microsoft.com" title="Microsoft Corporation">Leach, P.</a>, and <a href="mailto:timbl@w3.org" title="World Wide Web Consortium">T. Berners-Lee</a>, &#8220;<a href="http://tools.ietf.org/html/rfc2616">Hypertext Transfer Protocol -- HTTP/1.1</a>&#8221;, RFC&nbsp;2616, June&nbsp;1999.</td></tr><tr><td class="reference"><b id="RFC5987">[RFC5987]</b></td><td class="top">Reschke, J., &#8220;<a href="http://tools.ietf.org/html/rfc5987">Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters</a>&#8221;, RFC&nbsp;5987, August&nbsp;2010.</td></tr><tr><td class="reference"><b id="RFC5988">[RFC5988]</b></td><td class="top">Nottingham, M., &#8220;<a href="http://tools.ietf.org/html/rfc5988">Web Linking</a>&#8221;, RFC&nbsp;5988, October&nbsp;2010.</td></tr><tr><td class="reference"><b id="RFC6570">[RFC6570]</b></td><td class="top">Gregorio, J., Fielding, R., Hadley, M., Nottingham, M., and D. Orchard, &#8220;<a href="http://tools.ietf.org/html/rfc6570">URI Template</a>&#8221;, RFC&nbsp;6570, March&nbsp;2012.</td></tr></table><h2 id="rfc.references.2"><a href="#rfc.section.8.2" id="rfc.section.8.2">8.2</a> Informative References</h2><table><tr><td class="reference"><b id="RFC3986">[RFC3986]</b></td><td class="top"><a href="mailto:timbl@w3.org" title="World Wide Web Consortium">Berners-Lee, T.</a>, <a href="mailto:fielding@gbiv.com" title="Day Software">Fielding, R.</a>, and <a href="mailto:LMM@acm.org" title="Adobe Systems Incorporated">L. Masinter</a>, &#8220;<a href="http://tools.ietf.org/html/rfc3986">Uniform Resource Identifier (URI): Generic Syntax</a>&#8221;, STD&nbsp;66, RFC&nbsp;3986, January&nbsp;2005.</td></tr></table><div class="avoidbreak"><h1 id="rfc.authors"><a href="#rfc.authors">Author's Address</a></h1><address class="vcard"><span class="vcardline"><span class="fn">Mark Nottingham</span><span class="n hidden"><span class="family-name">Nottingham</span><span class="given-name">Mark</span></span></span><span class="org vcardline">Rackspace</span><span class="vcardline">EMail: <a href="mailto:mnot@mnot.net"><span class="email">mnot@mnot.net</span></a></span><span class="vcardline">URI: <a href="http://www.mnot.net/" class="url">http://www.mnot.net/</a></span></address></div></body></html>
View
280 link-template/draft-nottingham-link-template-00.txt
@@ -0,0 +1,280 @@
+
+
+
+Network Working Group M. Nottingham
+Internet-Draft Rackspace
+Intended status: Informational July 3, 2012
+Expires: January 4, 2013
+
+
+ The Link-Template HTTP Header Field
+ draft-nottingham-link-template-00
+
+Abstract
+
+ This specification defines the Link-Template HTTP header field,
+ providing a means for describing the structure of a link between two
+ resources, so that new links can be generated.
+
+Status of this Memo
+
+ This Internet-Draft is submitted in full conformance with the
+ provisions of BCP 78 and BCP 79.
+
+ Internet-Drafts are working documents of the Internet Engineering
+ Task Force (IETF). Note that other groups may also distribute
+ working documents as Internet-Drafts. The list of current Internet-
+ Drafts is at http://datatracker.ietf.org/drafts/current/.
+
+ Internet-Drafts are draft documents valid for a maximum of six months
+ and may be updated, replaced, or obsoleted by other documents at any
+ time. It is inappropriate to use Internet-Drafts as reference
+ material or to cite them other than as "work in progress."
+
+ This Internet-Draft will expire on January 4, 2013.
+
+Copyright Notice
+
+ Copyright (c) 2012 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (http://trustee.ietf.org/license-info) 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.
+
+
+
+
+
+Nottingham Expires January 4, 2013 [Page 1]
+
+Internet-Draft The Link-Template HTTP Header Field July 2012
+
+
+Table of Contents
+
+ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 2. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 3. Notational Conventions . . . . . . . . . . . . . . . . . . . . 3
+ 4. The Link-Template Header Field . . . . . . . . . . . . . . . . 3
+ 5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
+ 6. Security Considerations . . . . . . . . . . . . . . . . . . . . 4
+ 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 4
+ 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 4
+ 8.1. Normative References . . . . . . . . . . . . . . . . . . . 4
+ 8.2. Informative References . . . . . . . . . . . . . . . . . . 5
+ Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Nottingham Expires January 4, 2013 [Page 2]
+
+Internet-Draft The Link-Template HTTP Header Field July 2012
+
+
+1. Introduction
+
+ [RFC6570] defines a syntax for templates that, when expanded using a
+ set of variables, results in a URI [RFC3986].
+
+ This specification defines a HTTP header field for conveying
+ templated links in the headers of a HTTP message. It is
+ complimentary to the Link header field [RFC5988], which carries links
+ directly.
+
+
+2. Requirements
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in [RFC2119].
+
+
+3. Notational Conventions
+
+ This document uses the Augmented BNF defined in [RFC2616] to specify
+ valid protocol elements.
+
+ Additionally, it uses the modified "parameter" rule from [RFC5987],
+ and the "URI-Template" rule from [RFC6570].
+
+
+4. The Link-Template Header Field
+
+ The Link-Template entity-header field provides a means for
+ serialising one or more links into HTTP headers. It is semantically
+ equivalent to the Link header field [RFC5988], except that it uses
+ URI Templates [RFC6570] to convey the structure of links.
+
+ Link-Template = "Link-Template" ":" #linkt-value
+ linkt-value = "<" URI-Template ">" *( ";" parameter )
+
+ The target for the link (as defined by [RFC5988]) is the result of
+ expanding the URI Template [RFC6570] (being converted to an absolute
+ URI after expansion, if necessary).
+
+ The context, relation type and target attributes for the link are
+ determined as defined for the Link header field in [RFC5988].
+
+ The parameters on a linkt-value have identical semantics to those of
+ a Link header field [RFC5988]. This includes (but is not limited to)
+ the use of the "rel" parameter to convey the relation type, the
+ "anchor" parameter to modify the context IRI, and so on.
+
+
+
+Nottingham Expires January 4, 2013 [Page 3]
+
+Internet-Draft The Link-Template HTTP Header Field July 2012
+
+
+ Likewise, the requirements for parameters on linkt-values are the
+ same as those for a Link header field; in particular, the "rel"
+ parameter MUST NOT appear more than once, and if it does, the linkt-
+ value MUST be ignored by parsers.
+
+
+5. Examples
+
+ For example:
+
+ Link-Template: </{username}>; rel="http://example.org/rel/user"
+
+ indicates that a resource with the relation type
+ "http://example.org/rel/user" can be found by interpolating the
+ "username" variable into the template given.
+
+ Similarly,
+
+
+6. Security Considerations
+
+ The security consideration for the Link header field in [RFC5988] and
+ those for URI Templates [RFC6570] both apply.
+
+
+7. IANA Considerations
+
+ This specification enters the "Link-Template" into the registry of
+ Permanent Message Header Field Names.
+
+ o Header Field Name: Link-Template
+ o Protocol: http
+ o Status:
+ o Reference: [this document]
+
+
+8. References
+
+8.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
+ Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext
+ Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.
+
+ [RFC5987] Reschke, J., "Character Set and Language Encoding for
+
+
+
+Nottingham Expires January 4, 2013 [Page 4]
+
+Internet-Draft The Link-Template HTTP Header Field July 2012
+
+
+ Hypertext Transfer Protocol (HTTP) Header Field
+ Parameters", RFC 5987, August 2010.
+
+ [RFC5988] Nottingham, M., "Web Linking", RFC 5988, October 2010.
+
+ [RFC6570] Gregorio, J., Fielding, R., Hadley, M., Nottingham, M.,
+ and D. Orchard, "URI Template", RFC 6570, March 2012.
+
+8.2. Informative References
+
+ [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
+ Resource Identifier (URI): Generic Syntax", STD 66,
+ RFC 3986, January 2005.
+
+
+Author's Address
+
+ Mark Nottingham
+ Rackspace
+
+ Email: mnot@mnot.net
+ URI: http://www.mnot.net/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Nottingham Expires January 4, 2013 [Page 5]
+
View
175 link-template/draft-nottingham-link-template-00.xml
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!DOCTYPE rfc SYSTEM "http://xml.resource.org/authoring/rfc2629.dtd" [
+ <!ENTITY rfc2119 SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
+ <!ENTITY rfc2616 SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2616.xml'>
+ <!ENTITY rfc3986 SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3986.xml'>
+ <!ENTITY rfc5987 SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5987.xml'>
+ <!ENTITY rfc5988 SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5988.xml'>
+ <!ENTITY rfc6570 SYSTEM 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.6570.xml'>
+]>
+
+<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
+<?rfc toc="yes" ?>
+<?rfc tocdepth="3" ?>
+<?rfc tocindent="yes" ?>
+<?rfc symrefs="yes" ?>
+<?rfc sortrefs="yes"?>
+<?rfc iprnotified="no" ?>
+<?rfc strict="yes" ?>
+<?rfc compact="yes" ?>
+<?rfc comments="yes" ?>
+<?rfc inline="yes" ?>
+
+<rfc ipr="trust200902" docName="draft-nottingham-link-template-00" category="info">
+
+ <front>
+ <title>The Link-Template HTTP Header Field</title>
+ <author initials="M." surname="Nottingham" fullname="Mark Nottingham">
+ <organization>Rackspace</organization>
+ <address>
+ <email>mnot@mnot.net</email>
+ <uri>http://www.mnot.net/</uri>
+ </address>
+ </author>
+ <date year="2012"/>
+ <abstract>
+
+ <t>This specification defines the Link-Template HTTP header field,
+ providing a means for describing the structure of a link between
+ two resources, so that new links can be generated. </t>
+
+ </abstract>
+ </front>
+
+ <middle>
+
+ <section title="Introduction">
+
+ <t><xref target="RFC6570"/> defines a syntax for templates that,
+ when expanded using a set of variables, results in a URI
+ <xref target="RFC3986"/>.</t>
+
+ <t>This specification defines a HTTP header field for conveying
+ templated links in the headers of a HTTP message. It is
+ complimentary to the Link header field <xref target="RFC5988"/>,
+ which carries links directly.</t>
+
+ </section>
+
+ <section title="Requirements">
+ <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
+ NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"
+ in this document are to be interpreted as described in <xref
+ target="RFC2119"/>.</t>
+ </section>
+
+ <section title="Notational Conventions">
+ <t>This document uses the Augmented BNF defined in <xref
+ target="RFC2616"/> to specify valid protocol elements.</t>
+ <t>Additionally, it uses the modified "parameter" rule from <xref
+ target="RFC5987"/>, and the "URI-Template" rule from <xref
+ target="RFC6570"/>.</t>
+ </section>
+
+ <section anchor="header" title="The Link-Template Header Field">
+
+ <t>The Link-Template entity-header field provides a means for
+ serialising one or more links into HTTP headers. It is
+ semantically equivalent to the Link header field <xref
+ target="RFC5988"/>, except that it uses URI Templates <xref
+ target="RFC6570"/> to convey the structure of links.</t>
+
+ <figure>
+ <artwork xml:space="preserve"><![CDATA[
+ Link-Template = "Link-Template" ":" #linkt-value
+ linkt-value = "<" URI-Template ">" *( ";" parameter )
+]]></artwork>
+ </figure>
+
+ <t>The target for the link (as defined by <xref
+ target="RFC5988"/>) is the result of expanding the URI Template
+ <xref target="RFC6570"/> (being converted to an absolute URI after
+ expansion, if necessary).</t>
+
+ <t>The context, relation type and target attributes for the link
+ are determined as defined for the Link header field in <xref
+ target="RFC5988"/>.</t>
+
+ <t>The parameters on a linkt-value have identical semantics to
+ those of a Link header field <xref target="RFC5988"/>. This
+ includes (but is not limited to) the use of the "rel" parameter to
+ convey the relation type, the "anchor" parameter to modify the
+ context IRI, and so on.</t>
+
+ <t>Likewise, the requirements for parameters on linkt-values are
+ the same as those for a Link header field; in particular, the
+ "rel" parameter MUST NOT appear more than once, and if it does,
+ the linkt-value MUST be ignored by parsers.</t>
+
+ </section>
+
+ <section title="Examples">
+
+ <t>For example:</t>
+
+ <figure>
+ <artwork xml:space="preserve"><![CDATA[
+Link-Template: </{username}>; rel="http://example.org/rel/user"
+]]></artwork>
+ </figure>
+
+ <t>indicates that a resource with the relation type
+ "http://example.org/rel/user" can be found by interpolating the
+ "username" variable into the template given.</t>
+
+ <t>Similarly,</t>
+ </section>
+
+ <section title="Security Considerations">
+
+ <t>The security consideration for the Link header field in <xref
+ target="RFC5988"/> and those for URI Templates <xref
+ target="RFC6570"/> both apply.</t>
+
+ </section>
+
+ <section title="IANA Considerations">
+
+ <t>This specification enters the "Link-Template" into the
+ registry of Permanent Message Header Field Names.</t>
+
+ <t><list style="symbols">
+ <t>Header Field Name: Link-Template</t>
+ <t>Protocol: http</t>
+ <t>Status:</t>
+ <t>Reference: [this document]</t>
+ </list></t>
+
+ </section>
+
+ </middle>
+
+ <back>
+ <references title="Normative References">
+ &rfc2119;
+ &rfc2616;
+ &rfc5987;
+ &rfc5988;
+ &rfc6570;
+ </references>
+
+ <references title="Informative References">
+ &rfc3986;
+ </references>
+
+<!-- <section title="Acknowledgements">
+ <t>Thanks to
+
+ for their suggestions and feedback.
+ </t>
+ <t>The author takes all responsibility for errors and
+ omissions.</t>
+ </section> -->
+ </back>
+</rfc>
Please sign in to comment.
Something went wrong with that request. Please try again.