HTTP
Click on the red underlined text to get to the source
... document extends those generic mechanisms for adaptation of a
specific application protocol, HTTP [RFC2616]. Together,
application-agnostic ...
... application-agnostic OPES documents and this HTTP profile constitute
a complete specification for HTTP adaptation with OPES ...
... OPES documents and this HTTP profile constitute
a complete specification for HTTP adaptation with OPES.
...
... OPES.
The primary sections of this document specify HTTP-specific
extensions for the corresponding application-agnostic mechanisms
...
... application-specific
profiles. This document, HTTP adaptation with OPES, is such an
application profile ...
... OPES, is such an
application profile for HTTP. It specifies how application-
agnostic OPES mechanisms are to be used and augmented in order to
...
... agnostic OPES mechanisms are to be used and augmented in order to
support adaptation of HTTP messages.
o Finally, "P: Message Processing Language ...
... RFC4037]. Familiarity with OCP Core is required to
understand the HTTP profile. This section uses OCP Core conventions,
terminology, and mechanisms.
...
... Negotiation Offer (NO) message with HTTP-specific feature identifiers
documented in Section 3.2. HTTP ...
... HTTP-specific feature identifiers
documented in Section 3.2. HTTP-specific OCP optimization mechanisms
can be negotiated at the same time. A callout server ...
... can be negotiated at the same time. A callout server that supports
adaptation of HTTP messages has a chance to negotiate what HTTP
message parts will participate in adaptation, including negotiation
...
... callout server that supports
adaptation of HTTP messages has a chance to negotiate what HTTP
message parts will participate in adaptation, including negotiation
of HTTP request ...
... HTTP
message parts will participate in adaptation, including negotiation
of HTTP request parts as metadata for HTTP response adaptation.
Negotiable HTTP message ...
... negotiation
of HTTP request parts as metadata for HTTP response adaptation.
Negotiable HTTP message parts are documented in Section 3.1.
...
... HTTP request parts as metadata for HTTP response adaptation.
Negotiable HTTP message parts are documented in Section 3.1.
HTTP profile ...
... HTTP message parts are documented in Section 3.1.
HTTP profile introduces a new parameter for the Application Message
Start (AMS) message to communicate known HTTP message ...
... HTTP profile introduces a new parameter for the Application Message
Start (AMS) message to communicate known HTTP message length (HTTP
headers often do not convey length information reliably or at all).
This parameter is documented in Section 3.3. Section 3.4 documents a
...
... Application Message
Start (AMS) message to communicate known HTTP message length (HTTP
headers often do not convey length information reliably or at all).
This parameter is documented in Section 3.3. Section 3.4 documents a
mechanism to report HTTP message ...
... HTTP
headers often do not convey length information reliably or at all).
This parameter is documented in Section 3.3. Section 3.4 documents a
mechanism to report HTTP message parts with Data Use Mine (DUM)
...
... OCP sections document various OCP marshaling corner
cases such as handling of HTTP transfer encodings and 100 Continue
responses.
...
... well-known parts: headers, body, and
trailers. HTTP OPES processors are likely to have information about
HTTP message ...
... HTTP OPES processors are likely to have information about
HTTP message parts because they have to isolate and interpret HTTP
headers and find HTTP message boundaries. Callout servers ...
... OPES processors are likely to have information about
HTTP message parts because they have to isolate and interpret HTTP
headers and find HTTP message boundaries. Callout servers may either
...
... HTTP message parts because they have to isolate and interpret HTTP
headers and find HTTP message boundaries. Callout servers may either
not care about certain parts or may benefit from reusing HTTP ...
... HTTP message boundaries. Callout servers may either
not care about certain parts or may benefit from reusing HTTP OPES
processor work on isolating and categorizing interesting parts.
...
... request message headers, and the CRLF separator at the end of HTTP
headers (compare with section 4.1 of [RFC2616]).
...
... request-body: The message body of an HTTP request message as defined
in section 4.3 of [RFC2616] but not including the trailer.
...
... request-trailer: The entity headers of the trailer of an HTTP request
message in chunked transfer encoding. This part follows the same
...
... headers, and the CRLF separator at the end of
HTTP headers (compare with section 4.1 of [RFC2616]).
...
... response-body: The message body of an HTTP response message as
defined in section 4.3 of [RFC2616] but not including the trailer.
...
... response-trailer: The entity headers of the trailer of an HTTP
response message in chunked transfer encoding. This part follows
the same syntax as the trailer defined in section 3.6.1 of
...
...
The request profile contains two variants of adapted part lists: HTTP
request parts and HTTP response parts. Parts marked with an "(aux)"
suffix ...
... The request profile contains two variants of adapted part lists: HTTP
request parts and HTTP response parts. Parts marked with an "(aux)"
suffix are auxiliary parts that can only be used if explicitly
...
... are not expected.
Some HTTP messages lack certain parts. For example, many HTTP
requests do not have bodies, and most HTTP messages do not have
...
...
Some HTTP messages lack certain parts. For example, many HTTP
requests do not have bodies, and most HTTP messages do not have
trailers. An OCP ...
... Some HTTP messages lack certain parts. For example, many HTTP
requests do not have bodies, and most HTTP messages do not have
trailers. An OCP agent ...
... callout server sends adapted response
parts to "short-circuit" the HTTP transaction, forcing the OPES
processor to return an HTTP response ...
... HTTP transaction, forcing the OPES
processor to return an HTTP response without forwarding an adapted
HTTP request. This short-circuiting is useful for responding, for
...
... OPES
processor to return an HTTP response without forwarding an adapted
HTTP request. This short-circuiting is useful for responding, for
example, to an HTTP request that the callout service ...
... HTTP request. This short-circuiting is useful for responding, for
example, to an HTTP request that the callout service defines as
forbidden.
...
... Encodings (Section 3.2.7)
The definition of the HTTP profile feature structure using PETDM
follows:
...
... Figure 2
An HTTP profile structure can be used in feature lists of Negotiation
Offer (NO) messages and as an anonymous parameter of a Negotiation
Response ...
...
The Aux-Parts parameter of an HTTP response profile can be used to
negotiate the inclusion of auxiliary application message parts into
...
... different from the Pause-At-Body offset and is unknown until the size
of the HTTP message headers is known.
...
... DUM) message with the response-body part in the
HTTP response profile. If the Pause-At-Body value is 300, the OPES
processor ...
... Note that the latter offset is different from the Stop-Receiving-Body
offset and is unknown until the size of the HTTP message headers is
known.
...
...
For example, if the Stop-Receiving-Body value is zero in an HTTP
response profile, the OPES processor should send an Application
Message End ...
... For example, if the Preservation-Interest-Body value is zero in an
HTTP response profile, the callout server must not send any Data Use
Yours ...
... The OPES processor offers one profile feature for HTTP response
messages. Besides the standard message parts, the OPES processor is
able to add the header ...
... OPES processor is
able to add the header and body of the original HTTP request as
auxiliary message parts.
...
... AM-EL value is the size of the request-body part in the HTTP request
profile, and is the size of the response-body ...
... profile, and is the size of the response-body part in the HTTP
response profile, before any transfer codings have been applied (or
after all transfer codings have been removed ...
... after all transfer codings have been removed). This definition is
consistent with the HTTP entity length definition.
...
... An OCP agent that knows the exact length of the HTTP message entity
(see Section 7.2.2 "Entity ...
... AM-EL parameter SHOULD use the
parameter's value in a Content-Length HTTP entity header when
...
... The following example shows three DUM messages containing an abridged
HTTP response message. The response-body part is fragmented and sent
within two DUM messages ...
... The HTTP profile for OCP applies to all HTTP messages. That scope
includes HTTP messages such as 1xx (Informational) responses, POST,
...
... OCP applies to all HTTP messages. That scope
includes HTTP messages such as 1xx (Informational) responses, POST,
CONNECT, and OPTIONS requests, as well as responses with extension
status codes ...
... specifically configured to do otherwise, an OPES processor MUST
forward all HTTP messages for adaptation at callout servers. OPES
bypass instructions, configured HTTP message ...
... HTTP messages for adaptation at callout servers. OPES
bypass instructions, configured HTTP message handling rules, and
OCP-negotiation ...
... By design, OPES processor implementation cannot unilaterally decide
that an HTTP message is not worth adapting. It needs a callout
server opinion, a configuration setting, or another external
information to make the decision.
...
... callout servers and MAY use hop-by-hop headers returned by callout
servers to build an HTTP message for the next application hop.
However, see Section 3.7 for requirements specific to the Transfer-
...
... to the next application hop. Another service may actually handle
HTTP logic of removing and adding hop-by-hop headers. Many services ...
... encoding
feature of HTTP. Adaptations that use HTTP transfer encodings have
to be explicitly negotiated. This specification does not document
...
... have to make sure that all transfer encodings are stripped from an
HTTP message body before it enters OCP scope. An agent MUST
...
... send a correct Transfer-Encoding header to the next HTTP recipient,
independent of what header (if any) the callout server ...
... HTTP Header Correctness ...
...
When communicating with HTTP applications, OPES processors MUST
ensure correctness of all computable HTTP headers ...
... HTTP applications, OPES processors MUST
ensure correctness of all computable HTTP headers documented in
specifications that the processors intend to be compliant with. A
...
... validate and
eventually recalculate, add, or remove computable HTTP headers in
order to build a compliant HTTP message from an adapted application
...
... remove computable HTTP headers in
order to build a compliant HTTP message from an adapted application
message returned by the callout server. If a particular OPES
processor ...
... message returned by the callout server. If a particular OPES
processor trusts certain HTTP headers that a callout service sends,
it can use those headers ...
...
An OPES processor MAY forward a partially adapted HTTP message from a
callout server to the next callout server ...
... callout server to the next callout server, without verifying HTTP
header correctness. Consequently, a callout service cannot assume
that the HTTP headers ...
... HTTP
header correctness. Consequently, a callout service cannot assume
that the HTTP headers it receives are correct or final from an HTTP
point of view.
...
... service cannot assume
that the HTTP headers it receives are correct or final from an HTTP
point of view.
...
...
The following subsections present guidelines for the recalculation of
some HTTP headers.
...
... Content-Length header
that is sent within an HTTP header message part. The message length
could be modified by a callout service ...
... message length
could be modified by a callout service without adaptation of the HTTP
message headers.
...
...
Before sending the HTTP message to the HTTP peer, the OPES processor
has to ensure correctness of the message length ...
... RFC2616].
Besides ensuring HTTP message correctness, good OPES processors set
up the message to optimize performance ...
... latency. Specifically, indicating the end of a message by closing
the HTTP connection ought to be the last resort:
...
... AM-EL parameter or equivalent entity length information is not
available, and HTTP rules allow for chunked transfer encoding, the
OPES processor ...
... OCP
transaction to finish before forwarding the adapted HTTP message
on a persistent HTTP connection ...
... transaction to finish before forwarding the adapted HTTP message
on a persistent HTTP connection, then the processor SHOULD compute
...
... header and forward
adapted data immediately, while indicating the message end by
closing the HTTP connection.
...
...
According to section 14.15 of [RFC2616], HTTP intermediaries must not
generate Content-MD5 headers ...
... Content-MD5 header unless it detects that the HTTP message was not
modified; in this case, it MAY leave the Content-MD5 header ...
... AM-Part: request-header
235:GET http://www.restricted.example.com/ HTTP/1.1
Accept: */*
Accept-Language ...
... The next example is a language translation of a small plain text file
that gets transferred in an HTTP response. In this example, OCP
agents ...
... Compliance with this specification requires compliance with
[RFC3897]. When adapting HTTP, trace entries are supplied using HTTP
message headers ...
... RFC3897]. When adapting HTTP, trace entries are supplied using HTTP
message headers. The following HTTP extension headers ...
... trace entries are supplied using HTTP
message headers. The following HTTP extension headers are defined to
carry trace ...
... headers are defined using #list constructs
and, hence, a valid HTTP message may contain multiple trace entries
per header ...
... trace. Using
multiple equally-named extension header-fields is illegal from HTTP's
point of view and may not work with some of the OPES-unaware HTTP ...
... entity-headers at the end of a Chunked-Body of a chunked-
encoded message), provided trailer presence does not violate HTTP
protocol. See [RFC3897] for a definition of what tracing entries are
...
... application-agnostic OPES specifications. HTTP profiles do not
introduce any HTTP-specific security considerations ...
... OPES specifications. HTTP profiles do not
introduce any HTTP-specific security considerations. However, that
does not imply that HTTP ...
... HTTP-specific security considerations. However, that
does not imply that HTTP adaptations are immune from security
threats.
...
... Specific threat examples include such adaptations as rewriting the
Request-URI of an HTTP CONNECT request or removing an HTTP hop ...
... HTTP hop-by-hop
Upgrade header before the HTTP proxy can act on it. As with any
adaptation, the OPES ...
... OPES mechanisms is defined in corresponding
application-agnostic specifications. HTTP profiles for these
mechanisms use corresponding compliance definitions from these
specifications, as if each profile ...
... Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616draft, June 1999. ...
