- Existing WWW browsers can act as client software.
- Document Exchange Model document retrieval is supported.
- Clients are not required to support inbound HTTP connections.
|
||||||||||||
web-calculusHTTP Binding2006-02-03This specification defines the HTTP binding of the web-amp. The binding leverages the existing WWW infrastructure. Abstract
The
OverviewDesign goals
WWW browser as a human-to-messaging protocol interfaceThe web-calculus defines an interface model based on a web of typed nodes. The HTTP binding must be defined such that a User Interface (UI) can be constructed for an application by defining an HTML rendering of the node types. This HTML rendering acts as a "message generator", allowing the user to send the messages needed to traverse the web or to invoke a target closure. Supporting this type of HTML user interface means that each feature of the web-amp must be exposed in a way that is supported by existing WWW browsers. Document Exchange Model
The WWW is based on Document Exchange Model (DEM) document
retrieval. In the DEM, documents are retrieved by dereferencing
a URI. The existing WWW infrastructure is optimized to support
these DEM queries by caching
Support for the HTTP Homeless clientsMost existing WWW client software does not support any server functionality. For example, a typical WWW browser does not allow a web site to send a delayed response to the browser. In addition to this lack of software support, many clients are behind a network firewall that prevents all inbound TCP/IP connections. Most WWW clients are operating as if they have no home address at which to receive return mail. To accommodate homeless clients, the HTTP binding must match the request-response style defined by HTTP. Description
The web-amp HTTP binding has three main
components. The Capability URLThe web-amp specification lists the requirements for a capability URL.
The HTTP protocol does not itself support server authentication
and encryption. These capability URL features must be provided
by another HTTP extension, such as
The query string URI component is encoded according to the Sending a request
Each request
The
The
The
The
The operation return is encoded in the HTTP Required HTTP
|
Status-Code |
response node schema |
|---|---|
403 |
<http://web-calculus.org/amp/Rejection> |
404 |
<http://web-calculus.org/amp/NotFound>The message-body MUST be ignored. |
410 |
Treat as a permanent 404. The message-body MUST be ignored. |
The 404 and 410 responses SHOULD
contain an informational response for consumption by a human
client. All other client software MUST ignore any
message-body and treat the Status-Code
as canonical.
Other appropriate HTTP Response
Status-Codes MUST be used to report errors in
decoding a Request.
A server may support a variety of Media-Types, but is required to support at least the Media-Types listed here.
application/xml
This Media-Type indicates that the message-body is
encoded using the XML surface
syntax of the web-calculus
Document Model.
If a server supports any of the optional Media-Types listed here, it MUST do so in a way compliant with this specification.
application/x-www-form-urlencoded
This Media-Type indicates that the message-body is
encoded using the www-form
surface syntax of the web-calculus
Document Model.
application/code
This Media-Type indicates that the message-body is
encoded using the code surface
syntax of web-calculus
Document Model.
GET request
GET /test/?key=bsnb-5skf-p3sm HTTP/1.1 Host: www.example.comNormal GET response
HTTP/1.1 200 OK
cache-control: max-age=31536000
content-type: application/xml
content-length: 556
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
href="/xsl/http/yurl.org/Expert-define.xsl"?>
<list>
<doc schema="http://yurl.org/Expert-define">
<super schema="http://web-calculus.org/ref/Declaration">
<in schema="http://web-calculus.org/schema/parameter/Immutable">
<category>http://web-calculus.org/string/String</category>
</in>
<out schema="http://web-calculus.org/schema/parameter/Lambda">
<type>http://yurl.org/Author-assign</type>
</out>
<error>http://web-calculus.org/content/Collision</error>
</super>
</doc>
</list>
NotFound GET response
HTTP/1.1 404 Not Found content-type: application/xml content-length: 162 <?xml version="1.0" encoding="US-ASCII"?> <?xml-stylesheet type="text/xsl" href="/404.xsl"?> <list> <doc schema="http://web-calculus.org/amp/NotFound"/> </list> POST request
POST /test/?key=bsnb-5skf-p3sm&mid=tm635augvad5tft3l57uchjanq HTTP/1.1 Host: www.example.com Content-Type: application/xml Content-Length: 77 <list> <doc schema="http://web-calculus.org/string/String">foo</doc> </list>Normal POST response
HTTP/1.1 200 OK
content-type: application/xml
content-length: 243
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
href="/xsl/http/web-calculus.org/pointer/Link.xsl"?>
<list>
<doc schema="http://web-calculus.org/pointer/Link">
<target>./?key=5xmx-h4uj-bgtr</target>
</doc>
</list>
Error POST response
HTTP/1.1 200 OK
content-type: application/xml
content-length: 326
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
href="/xsl/http/web-calculus.org/content/Collision.xsl"?>
<list>
<doc schema="http://web-calculus.org/ref/Smashed">
<reason schema="http://web-calculus.org/content/Collision">
<super schema="http://web-calculus.org/Error"/>
</reason>
</doc>
</list>
|
|
top
Copyright 2002 - 2006 Waterken Inc. All rights reserved. |