Known headers
These headers are defined in RFC 2616, and, for their official definitions, refer to that document. This document descibes how they appear after being parsed by web2.
Entity headers:
- Allow: list of case-sensitive method strings -
e.g.
['GET', 'HEAD', 'POST']
- Content-Encoding: list of string content-encodings -
e.g.
['gzip']
- Content-Language: list of string content languages -
e.g.
['en', 'mi']
- Content-Location: url string -
e.g.
"http://foo.bar.com/"
- Content-MD5: (decoded base64) string, should be 16 bytes -
e.g.
'8Al:\x1d\x9aO\xf2m\x91\xa0X\xbe\xe3{\xc8'
- Content-Range: tuple of (rangetype, start, end, realLength)
- e.g.
('bytes', 0, 499, 1234)
- Content-Type: MimeType -
e.g.
MimeType('text', 'html', [('charset','iso-8859-4')])
- Expires: seconds since Epoch -
e.g.
1000000000
-
Last-Modified: seconds since Epoch -
e.g.
1000000000
Request headers (client to server):
-
Accept: dictionary of MimeType -> float 0.0 to 1.0 -
e.g.
{MimeType('text', 'html'): 1.0, MimeType('image', 'jpg'): 0.4}
-
Accept-Charset: dict of string charset -> float 0.0 to 1.0 -
e.g.
{'utf-8': 1.0, 'iso-8859-1': 0.9, '*': 0.7}
-
Accept-Encoding: dict of string encoding -> float 0.0 to 1.0 -
e.g.
{'deflate': 1.0, 'gzip': 1.0, identity: 0.0001}
-
Accept-Language: dict of string language -> float 0.0 to 1.0 -
e.g.
{'en-us': 1.0, 'en': 0.5}
-
Authorization: a list containing the scheme and a scheme dependent part -
e.g.
['basic', 'base64 encoded username:password']
or['digest', {'realm': 'MyRealm', 'username': 'MyUserName'}]
-
From: string. Useless, and unused, header. -
e.g.
"email@a.b.c"
. -
Host: string. Use request.host instead of accessing this header
directly. -
e.g.
"twistedmatrix.com"
. -
If-Match: list of ('*' or ETag instance) -
e.g.
['*']
or[ETag("foo", weak=True), ETag("bar")]
- If-Modified-Since: seconds since Epoch.
- If-None-Match: list of ('*' or ETag instance)
-
If-Range: Etag instance or seconds since Epoch -
e.g.
1000000000
orETag("foo")
-
If-Unmodified-Since: seconds since Epoch -
e.g.
1000000000
- Max-Forwards: integer
- Proxy-Authorization: TODO
-
Range: tuple (rangetype, [(int start or None, int end or None)*]) -
e.g.
('bytes', [(0, 1), (5, None)])
-
Referer: string -
e.g.
"http://twistedmatrix.com/bugs/"
-
User-Agent: string -
e.g.
"MyBrowser/5500.2 (Amiga; U; PPC) Awesomeness/2300.1"
Response headers:
- Accept-Ranges: list of range type strings - e.g. ['bytes']
- Age: seconds - e.g. 500
- ETag: ETag instance - e.g. ETag("asdf")
- Location: url string - e.g. "http://twistedmatrix.com/"
- Proxy-Authenticate: TODO
- Retry-After: integer seconds since Epoch
- Server: string
- Set-Cookie: list of Cookie instances
- Set-Cookie2: list of Cookie instances
- Vary: list of string header names
-
WWW-Authenticate: list containing a scheme and dictionary
containing challenge information -
e.g.
['basic', {'realm': 'MyRealm'}]
or['digest', {'realm': 'MyRealm', 'qop': 'auth', 'nonce': 'mynonce'}]
General headers:
- Cache-Control: dictionary of cache control directives - e.g. { 'no-cache': ['PROXY-AUTHENTICATE'], 'no-store': None, "max-age": 5 }
-
Date: seconds since Epoch -
e.g.
1112321588
, fromtime.time()
- Pragma: TODO
- Via: TODO
- Warning: TODO
>Lower level HTTP headers, used only by framework:
- Connection: TODO
- Content-Length: integer length
- Expect: dictionary of expect feature->tuple (value, (param, paramvalue)*). - e.g. {'100-continue': (None)}
- Transfer-Encoding: list of string transfer-encodings
- TE: dictionary of string TE->int qvalue
- Trailer: TODO
- Upgrade: TODO