r2 - 15 Feb 2007 - 11:36:58 - ChristianFoliniYou are here: TWiki >  Main Web > RequestHeaders

HTTP Request Headers

Abstract

This document talks about http request headers in remo.
It defines the list of standard headers, it explains some of them and it links to relevant documents

Table of Contents

RFC Overview

RFC 2616, Section 5.3 defines the standard http request headers for protocol version 1.1: http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.3

Request Header Fields

request-header = Accept                   ; Section 14.1
               | Accept-Charset           ; Section 14.2
               | Accept-Encoding          ; Section 14.3
               | Accept-Language          ; Section 14.4
               | Authorization            ; Section 14.8
               | Expect                   ; Section 14.20
               | From                     ; Section 14.22
               | Host                     ; Section 14.23
               | If-Match                 ; Section 14.24
               | If-Modified-Since        ; Section 14.25
               | If-None-Match            ; Section 14.26
               | If-Range                 ; Section 14.27
               | If-Unmodified-Since      ; Section 14.28
               | Max-Forwards             ; Section 14.31
               | Proxy-Authorization      ; Section 14.34
               | Range                    ; Section 14.35
               | Referer                  ; Section 14.36
               | TE                       ; Section 14.39
               | User-Agent               ; Section 14.43

Request-header field names can be extended reliably only in combination with a change
in the protocol version. However, new or experimental header fields MAY be given the
semantics of request- header fields if all parties in the communication recognize them 
to be request-header fields. Unrecognized header fields are treated as entity-header fields. 

General Header Fields

general-header = Cache-Control            ; Section 14.9
               | Connection               ; Section 14.10
               | Date                     ; Section 14.18
               | Pragma                   ; Section 14.32
               | Trailer                  ; Section 14.40
               | Transfer-Encoding        ; Section 14.41
               | Upgrade                  ; Section 14.42
               | Via                      ; Section 14.45
               | Warning                  ; Section 14.46

General-header field names can be extended reliably only in combination 
with a change in the protocol version. However, new or experimental header 
fields may be given the semantics of general header fields if all parties 
in the communication recognize them to be general-header fields. Unrecognized
header fields are treated as entity-header fields. 

Entity Fields

entity-header  = Allow                    ; Section 14.7
               | Content-Encoding         ; Section 14.11
               | Content-Language         ; Section 14.12
               | Content-Length           ; Section 14.13
               | Content-Location         ; Section 14.14
               | Content-MD5              ; Section 14.15
               | Content-Range            ; Section 14.16
               | Content-Type             ; Section 14.17
               | Expires                  ; Section 14.21
               | Last-Modified            ; Section 14.29
               | extension-header
       extension-header = message-header

The extension-header mechanism allows additional entity-header fields to be 
defined without changing the protocol, but these fields cannot be assumed to 
be recognizable by the recipient. Unrecognized header fields SHOULD be ignored 
by the recipient and MUST be forwarded by transparent proxies. 

Remo is a security software. "We are not ignoring unrecognized header fields*. But in the future, this behaviour may change. For the time being, we consider this list of headers as fixed.

Special Stuff

Keep-Alive is a HTTP/1.0 header that is used with HTTP/1.1 with firefox for example.

Headers in remo

name type remo support remo variable name
Accept-Charset Standard Request Header supported by default accept_charset
Accept-Encoding Standard Request Header supported by default accept_encoding
Accept-Language Standard Request Header supported by default accept_language
Accept Standard Request Header supported by default accept
Allow Entity Header unsupported
Authorization Standard Request Header unsupported
Cache-Control General Header supported by default cache_control
Connection General Header supported by default guiprefix_connection
Content-Encoding Entity Header unsupported
Content-Language Entity Header unsupported
Content-Length Entity Header supported by default content_length
Content-Location Entity Header unsupported
Content-MD5 Entity Header unsupported
Content-Range Entity Header unsupported
Content-Type Entity Header supported by default content_type
Cookie Version 0 Netscape Cookie supported by default (as header!) cookie
Cookie2 RFC 2965 Cookie unsupported
Date General Header unsupported
Expect Standard Request Header unsupported
Expires Entity Header unsupported
From Standard Request Header unsupported
Host Standard Request Header supported by default host
If-Match Standard Request Header unsupported
If-Modified-Since Standard Request Header unsupported
If-None-Match Standard Request Header unsupported
If-Range Standard Request Header unsupported
If-Unmodified-Since Standard Request Header unsupported
Keep-Alive Old HTTP1.0 header, still in use supported by default keep_alive
Last-Modified Entity Header unsupported
Max-Forwards Standard Request Header unsupported
Pragma General Header supported by default pragma
Proxy-Authorization Standard Request Header unsupported
Range Standard Request Header unsupported
Referer Standard Request Header supported by default referer
TE Standard Request Header unsupported
Trailer General Header unsupported
Transfer-Encoding General Header unsupported
Upgrade General Header unsupported
User-Agent Standard Request Header supported by default user_agent
Via General Header unsupported
Warning General Header unsupported

The remo variable name corresponds to the HTTP header name as follows:

  • Capitalize first letter of every word
  • Replace "_" by "-"
  • Remove "guiprefix_"

The guiprefix had to be added to the fieldname "connection" because rails knows "connection" as parameter of a db item.

Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r2 < r1 | More topic actions
 

No permission to view WebTopBar?

No permission to view WebBottomBar?