LinkHeader

From W3C Wiki

See also: http://www.rfc-editor.org/rfc/rfc5988.txt

The HTTP Link Header

The Link: header in HTTP allows the server to point an interested client to another resource containing metadata about the requested resource. For example,

   Link: <meta.rdf>; rel=meta

means that more information about the requested resource is available in the resource whose relative URI is meta.rdf. Compare this with the HTML element:

   <link rel="meta" href="meta.rdf"/>

The HTTP link header allows metadata to be given without actually touching the resource in question, even if it is a movie or a photograph. Typical uses of the linked metadata file may be to express:

  • A map of different language, content-type and version-specific URIs
  • Licensing, such as Creative Commons
  • Information about how to edit the file
  • Policy information about appropriate use and/or distribution of the data

The Link: header in HTTP was in early versions of HTTP, and has been re-proposed by Connolly and Hixie in 1999 and by Mark Nottingham and others more recently. The idea is that the RDF822 header style parameters are used in the same way as the XML attributes in the HTML <link rel="..." href=".."/> except for the href= attribute which is the main argument of the HTTP header. The standardization and experimentation of the Link: header would therefore be done with the HTML spec.

Apache 1

The mod_headers supports the addition of a fixed header by putting the following in the .htaccess file, for example.

 Header set Link: <meta.rdf>;rel=meta

Apache 2

The mod_headers supports the addition of a fixed header by putting the following in the ,htaccess file, for example.

 Header set Link: <meta.rdf>;rel=meta

Also you can do environment variable expansion within the

 Header set Link: <%{Request_URI}.meta>;rel=meta

There may be a bug in this as I didn't get it to work - timbl.

Apache 2.3

I think the following works in Apache 2.3:

  SetEnvIf Request_URI "(.*)" Request_Uri=$1
  Header add Link "<%{Request_Uri}e.meta>;rel=meta"

- JAR.

Client side implementations

For POWDER content labels. Perl's LWP module makes no distinction between a link/rel defined in HTML or HTTP Headers. See, for example, test results. (source)

The Tabulator implements this in its 'AJAR' RDF AJAX library, in that when a request for x returns a Link: y; rel=meta header, it takes it as having the semantics (in n3) x rdfs:seeAlso y. This is the same as the semantics of <link rel="meta" href="y"> in the body of HTML returned. In each case, if a query has been done for x, then y also will be looked up on the web. (The provenance of the triple is not deemed to be the document, it is deemed to be the HTTP response from the server. The triple will not show up as part of the RDF semantics of the document.)

References/History