RFC 4236:HTTP Adaptation with Open Pluggable Edge ...
RFC-Ref

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 ...


... This section documents the HTTP profile for the OPES Callout Protocol (OCP ...
... RFC4037]. Familiarity with OCP Core is required to understand the HTTP profile. This section uses OCP Core conventions, terminology, and mechanisms. ...
... OPES processor communicates its desire to adapt HTTP messages via a Negotiation Offer (NO ...
... 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. ...
... An HTTP message may have several well-known parts: headers, body, and ...
... 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-header: The start-line of an HTTP request message, all request message headers ...
... 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 ...
... response-header: The start-line of an HTTP response message, all response message headers ...
... 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 ...
... This document defines two HTTP profiles for OCP: request and response ...
... 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. ...
... An HTTP application profile feature extends semantics of the feature ...
... Encodings (Section 3.2.7) The definition of the HTTP profile feature structure using PETDM follows: ...
... follows: HTTP-Profile: extends Feature with { [Aux-Parts ...
... 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 ...
... message body part (request-body in HTTP request profile and response-body ...
... 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 ...
... entity header when constructing an HTTP message, provided a Content-Length HTTP entity ...
... constructing an HTTP message, provided a Content-Length HTTP entity header ...
... entity header is allowed for the given application message by HTTP (see Section 3.8.1). ...
... that is a part of an OCP transaction with an HTTP profile. The AM- Part parameter value ...
... 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 ...
... header 64:HTTP/1.1 200 OK Content-Type: text/html ...
... The HTTP profile for OCP applies to all HTTP messages. That scope ...
... 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. ...
... HTTP defines several hop-by-hop headers (e.g., Connection) and allows ...
... 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 ...
... HTTP messages may use transfer encodings, a hop-by-hop encoding ...
... hop-by-hop encoding feature of HTTP. Adaptations that use HTTP transfer encodings have ...
... 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 ...
... headers has to be ensured by processors claiming compliance with HTTP/1.1 ([RFC2616]). ...
... 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. ...
... headers. Before sending the HTTP message to the HTTP peer, the OPES processor ...
... 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: ...
... Content-Length header to be able to keep a persistent HTTP connection. Note that HTTP ...
... HTTP connection. Note that HTTP rules prohibit a Content-Length header ...
... 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 ...
... This is a possible OCP message flow using an HTTP request profile. An end-user ...
... AM-Part: request-header 235:GET http://www.restricted.example.com/ HTTP/1.1 Accept: */* Accept-Language ...
... header 76:HTTP/1.1 403 Forbidden Content-Type: text/html ...
... 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 ...
... header 65:HTTP/1.1 200 OK Content-Type: text/plain ...
... header 65:HTTP/1.1 200 OK Content-Type: text/plain ...
... request-header 65:GET /opes/adsample.html HTTP/1.1 Host: www.martin-stecher.de ...
... header 64:HTTP/1.1 200 OK Content-Type: text/html ...


... 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 ...
... HTTP's point of view and may not work with some of the OPES-unaware HTTP proxies. ...
... proxies. For example, here is an HTTP response message header after OPES ...
... Example: HTTP/1.1 200 OK Date: Thu, 18 Sep 2003 06:25:24 GMT ...
... 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 ...


... An HTTP extension header is introduced to allow for OPES system ...
... This header can be added to HTTP requests to request OPES system bypass ...


... 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 CONNECT request or removing an HTTP hop-by-hop Upgrade header before the HTTP ...
... HTTP hop-by-hop Upgrade header before the HTTP proxy can act on it. As with any adaptation, the OPES ...
... OPES agents MUST NOT perform such actions without HTTP client or server consent. ...


... 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. ...



Google
Web
RFC-Ref