Network Working Group | J.M. Snell |
Internet-Draft | October 2012 |
Intended status: Informational | |
Expires: April 02, 2013 |
Additional Link Relation Types
draft-snell-additional-link-relations-05
This specification defines a number of additional Link Relation Types that can used for a variety of purposes..
This Internet-Draft is submitted to IETF 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 April 02, 2013.
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.
The fundamental model for Web Links and the Registry of Link Relations are established by [RFC5988]. This specification defines and adds the following additional types of link relations to the registry: about, preview, privacy-policy, terms-of-service, and type.
The "about" Link relation can be used to refer to a resource that is the subject of the link's context. Multiple subjects can be indicated through the use of multiple "about" link relations.
For example, if the context resource is a review about a particular product, the "about" link can be used to reference the URL of the product:
HTTP/1.1 200 OK Content-Type: application/json Link: <http://store.example.org/product/abc>; rel="about" {...}
The "preview" Link relation can be used to refer to a resource that serves as a preview of the link's context, for instance, a screen capture of a video, or a brief snippet of audio from a song.
For example, issue a HTTP HEAD request to a URI representing a large video or image file might return a link to a short or lower quality preview of the original:
HTTP/1.1 200 OK Content-Text: video/mpeg Link: <http://example.org/preview/10-second-preview.mpg>; rel="preview"; type="video/mpeg"
The "privacy-policy" Link relation can be used to refer to a resource describing the privacy policy associated with the link's context. The privacy policy can be any resource that discloses what personal information about the user is collected, and how that personal information is stored, used, managed and disclosed to other parties.
For example, an HTTP server that collects personal information about a user throughout the course of the user's interaction with the service can include "privacy-policy" Links within all HTTP Responses using any combination of Link headers or links embedded in the response payload:
HTTP/1.1 200 OK Content-Type: text/html <html> <head> ... <link rel="privacy-policy" href="/privacy-policy.html" /> ... </head> <body> ... </body> </html>
Note that in the absence of clear legal obligations placed on an entity either through contract or law, the presence of a "privacy-policy" Link does not constitute a legally binding obligation on the part of the service. The linked resource can only be interpreted as a description of the expected practice.
It is recommended that publishers of privacy policy resources linked to using the "privacy-policy" Link relation provide a clear and simple mechanism for signaling when changes to the Privacy Policy resource have been made, such as generating a new Entity Tag for the resource or generating a hash over the Privacy Policy's content. How much mechanisms are utilized are out of the scope of this specification, however.
The "terms-of-service" Link relation can be used to refer to a resource describing the Terms of Service associated with the link's context. The Terms of Service can be any resource that describes the rules to which a consumer of the service must agree to follow when using the service provided by the link's context.
For example, an HTTP server can include "terms-of-service" Links within all HTTP Responses using any combination of Link headers or links embedded in the response payload:
HTTP/1.1 200 OK Content-Type: text/html <html> <head> ... <link rel="terms-of-service" href="/tos.html"> ... </head> <body> ... </body> </html>
It must be noted that the Terms of Service linked to using this link relation carries no legal weight and can be ignored with impunity in the absence of an explicit, legally enforceable contract. The linked Terms of Service are simply a notice of the terms that may be expected to apply once a contract is established.
The "type" Link relation can be used to indicate that the context resource is an instance of the resource identified by the target IRI.
HTTP/1.1 200 OK Content-Type: text/plain Link: <http://example.org/Person/givenName>; type="type" Sally
When used within the header of an HTTP message, the "type" specified by the type link relation cannot be confused with the content type of the payload as given by the Content-Type header. The "type" link relation references the payload's abstract semantic type whereas the Content-Type header identifies the specific serialization format of the payload.
If the context can be considered to be an instance of multiple semantic types, multiple "type" link relations can be used.
The Registry of Link Relations should be updated with the following entries:
There are no additional security concerns introduced by this document.
[RFC5988] | Nottingham, M., "Web Linking", RFC 5988, October 2010. |