Meta-Package HTTP Extension

Eric Prud'hommeaux
eric@w3.org
$Id: Overview.html,v 1.2 2001/08/15 15:33:32 eric Exp $

Abstract

Most HTTP resource retrievals get a document (or response) as well as some metadata about the document. The metadata is encoded in the HTTP MIME headers and is therefor limited to communicating types of information already specified by the IETF. As the use of metadata becomes more prevelent on the web, this limitation will become more and more constraining. The Meta-Package HTTP Extension is a protocol for packaging metadata in the body of a request or response.

Table of Contents

  1. Status
  2. Introduction
  3. Document Structure
  4. Headers
  5. Example: ACLs

Status of this document

As of the time of writing, Meta-Package has not been reviewed or implemented. It is not endorsed by W3C. This document expresses only a protocl proposed by the author.

Introduction

Most HTTP resource retrievals get a document (or response) as well as some metadata about the document. The metadata is encoded in the HTTP MIME headers and is therefor limited to communicating types of information already specified by the IETF. As the use of metadata becomes more prevelent on the web, this limitation will become more and more constraining. The Meta-Package HTTP Extension is a protocol for packaging metadata in the body of a request or response.

Document Structure

Headers

Meta-Package uses a set of headers to characterize the metadata embeded in the body of the document.

Accept

The value is a series of URIs separated by whitespace with optional Q values representing the preferred encoding of the metadata. See Content-Type.

Action

The value specifies what the agent is expected to do with the data and any parameters specific to that request. Parameters must be passed as a series of whitespace-separated QNames or URIs. These parameters specify what portion of the metadata is to be acted upon. See Action Parameters.

GET-META

The action requests the the agent return the metadata pertinent to the requested document. Parameters may be supplied to request a subset of the metadata.

PUT-META

The action requests the the agent replace the metadata pertinent to the requested document with the metadata passed in the body of the message. Parameters may be supplied to replace a subset of the metadata.

Action Parameters

For brevity and simplicity, QNames may be used in place of URIs for defined names of subsets of the data. These defined names must be listed in this document or subsequent versions of this document. As of this writing, the complete list of defined data subsets was:

ACLs (Access Control Lists)
describe what parties have what access to a resource. (ACLs schema)
CCPP (Composite Capability/Preference Profiles)
a description of device capabilities and user preferences. (CC/PP document)

Content-Type

The value is a URI that establishes the encoding of the metadata. The only manditory implementation is the RDF encoding identified by the URI http://www.w3.org/1999/02/22-rdf-syntax-ns# and described at that location.

Content-Length

The value is a decimal integer specifying the number of bytes in the document that are used to represent the metadata. Compliant agents should remove this data from the stream to be passed to the document handler. They should also adjust the internal representation of the total document content length to reflect the portion of body removed from the stream.

Example: ACLs

M-GET /2001/Talks/0710-ep-grid/all.htm HTTP/1.1
User-Agent: W3C ChACL agent
Host: www.w3.org
Accept: text/xml
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Authorization: Basic ZXJXqvRjY4Ui8JeBMt==
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers
Mandatory: http://www.w3.org/2001/07/07-MetaPackage/;ns=03
03-Action: GET-META(ACLs)
03-Accept: http://www.w3.org/1999/02/22-rdf-syntax-ns#
HTTP/1.0 200 
Date: Sat, 07 Jul 2001 14:08:12 GMT
Server: Apache/1.3.6 (Unix) PHP/3.0.15
WWW-Authenticate: Basic realm="W3CACL"
Content-length: 6614
Content-Type: application/octet-stream
Mandatory: http://www.w3.org/2001/07/07-MetaPackage/;ns=18
18-Content-Type: http://www.w3.org/1999/02/22-rdf-syntax-ns#
18-Content-Length: 883

<?xml version="1.0"?>
<!-- Session-Id: 994514895.830925 -->
<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:s="http://www.w3.org/2001/02/acls/ns#">
...
</rdf:RDF>

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
...
</html>

Eric Prud'hommeaux

Last modified: Wed Aug 15 11:30:32 EST 2001