summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Doc/lib/libhttplib.tex8
-rw-r--r--Doc/lib/liburllib2.tex9
-rw-r--r--Lib/BaseHTTPServer.py20
-rw-r--r--Lib/httplib.py51
-rw-r--r--Lib/urllib2.py49
5 files changed, 69 insertions, 68 deletions
diff --git a/Doc/lib/libhttplib.tex b/Doc/lib/libhttplib.tex
index 8f02368..049f6c4 100644
--- a/Doc/lib/libhttplib.tex
+++ b/Doc/lib/libhttplib.tex
@@ -288,6 +288,14 @@ and also the following constants for integer status codes:
{An HTTP Extension Framework, \rfc{2774}, Section 7}
\end{tableiii}
+\begin{datadesc}{responses}
+This dictionary maps the HTTP 1.1 status codes to the W3C names.
+
+Example: \code{httplib.responses[httplib.NOT_FOUND]} is \code{'Not Found'}.
+\versionadded{2.5}
+\end{datadesc}
+
+
\subsection{HTTPConnection Objects \label{httpconnection-objects}}
\class{HTTPConnection} instances have the following methods:
diff --git a/Doc/lib/liburllib2.tex b/Doc/lib/liburllib2.tex
index 842b2a3..706c54b 100644
--- a/Doc/lib/liburllib2.tex
+++ b/Doc/lib/liburllib2.tex
@@ -71,15 +71,6 @@ set to \code{500}.
\end{funcdesc}
-The following attribute is defined:
-
-\begin{datadesc}{httpresponses}
-A mapping between HTTP status codes and the W3C names.
-
-Example: \code{urllib2.httpresponses[404]} is \code{'Not Found'}.
-\versionadded{2.5}
-\end{datadesc}
-
The following exceptions are raised as appropriate:
\begin{excdesc}{URLError}
diff --git a/Lib/BaseHTTPServer.py b/Lib/BaseHTTPServer.py
index 1b3d4db..a041ef2 100644
--- a/Lib/BaseHTTPServer.py
+++ b/Lib/BaseHTTPServer.py
@@ -483,7 +483,7 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
# Table mapping response codes to messages; entries have the
# form {code: (shortmessage, longmessage)}.
- # See http://www.w3.org/hypertext/WWW/Protocols/HTTP/HTRESP.html
+ # See RFC 2616.
responses = {
100: ('Continue', 'Request received, please continue'),
101: ('Switching Protocols',
@@ -494,7 +494,7 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
202: ('Accepted',
'Request accepted, processing continues off-line'),
203: ('Non-Authoritative Information', 'Request fulfilled from cache'),
- 204: ('No response', 'Request fulfilled, nothing follows'),
+ 204: ('No Content', 'Request fulfilled, nothing follows'),
205: ('Reset Content', 'Clear input form for further input.'),
206: ('Partial Content', 'Partial content follows.'),
@@ -503,7 +503,7 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
301: ('Moved Permanently', 'Object moved permanently -- see URI list'),
302: ('Found', 'Object moved temporarily -- see URI list'),
303: ('See Other', 'Object moved -- see Method and URL list'),
- 304: ('Not modified',
+ 304: ('Not Modified',
'Document has not changed since given time'),
305: ('Use Proxy',
'You must use proxy specified in Location to access this '
@@ -511,11 +511,11 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
307: ('Temporary Redirect',
'Object moved temporarily -- see URI list'),
- 400: ('Bad request',
+ 400: ('Bad Request',
'Bad request syntax or unsupported method'),
401: ('Unauthorized',
'No permission -- see authorization schemes'),
- 402: ('Payment required',
+ 402: ('Payment Required',
'No payment -- see charging schemes'),
403: ('Forbidden',
'Request forbidden -- authorization will not help'),
@@ -525,7 +525,7 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
406: ('Not Acceptable', 'URI not available in preferred format.'),
407: ('Proxy Authentication Required', 'You must authenticate with '
'this proxy before proceeding.'),
- 408: ('Request Time-out', 'Request timed out; try again later.'),
+ 408: ('Request Timeout', 'Request timed out; try again later.'),
409: ('Conflict', 'Request conflict.'),
410: ('Gone',
'URI no longer exists and has been permanently removed.'),
@@ -539,15 +539,15 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler):
417: ('Expectation Failed',
'Expect condition could not be satisfied.'),
- 500: ('Internal error', 'Server got itself in trouble'),
+ 500: ('Internal Server Error', 'Server got itself in trouble'),
501: ('Not Implemented',
'Server does not support this operation'),
502: ('Bad Gateway', 'Invalid responses from another server/proxy.'),
- 503: ('Service temporarily overloaded',
+ 503: ('Service Unavailable',
'The server cannot process the request due to a high load'),
- 504: ('Gateway timeout',
+ 504: ('Gateway Timeout',
'The gateway server did not receive a timely response'),
- 505: ('HTTP Version not supported', 'Cannot fulfill request.'),
+ 505: ('HTTP Version Not Supported', 'Cannot fulfill request.'),
}
diff --git a/Lib/httplib.py b/Lib/httplib.py
index 5c82edd..b4bd536 100644
--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -81,7 +81,7 @@ __all__ = ["HTTP", "HTTPResponse", "HTTPConnection", "HTTPSConnection",
"UnknownTransferEncoding", "UnimplementedFileMode",
"IncompleteRead", "InvalidURL", "ImproperConnectionState",
"CannotSendRequest", "CannotSendHeader", "ResponseNotReady",
- "BadStatusLine", "error"]
+ "BadStatusLine", "error", "responses"]
HTTP_PORT = 80
HTTPS_PORT = 443
@@ -153,6 +153,55 @@ HTTP_VERSION_NOT_SUPPORTED = 505
INSUFFICIENT_STORAGE = 507
NOT_EXTENDED = 510
+# Mapping status codes to official W3C names
+responses = {
+ 100: 'Continue',
+ 101: 'Switching Protocols',
+
+ 200: 'OK',
+ 201: 'Created',
+ 202: 'Accepted',
+ 203: 'Non-Authoritative Information',
+ 204: 'No Content',
+ 205: 'Reset Content',
+ 206: 'Partial Content',
+
+ 300: 'Multiple Choices',
+ 301: 'Moved Permanently',
+ 302: 'Found',
+ 303: 'See Other',
+ 304: 'Not Modified',
+ 305: 'Use Proxy',
+ 306: '(Unused)',
+ 307: 'Temporary Redirect',
+
+ 400: 'Bad Request',
+ 401: 'Unauthorized',
+ 402: 'Payment Required',
+ 403: 'Forbidden',
+ 404: 'Not Found',
+ 405: 'Method Not Allowed',
+ 406: 'Not Acceptable',
+ 407: 'Proxy Authentication Required',
+ 408: 'Request Timeout',
+ 409: 'Conflict',
+ 410: 'Gone',
+ 411: 'Length Required',
+ 412: 'Precondition Failed',
+ 413: 'Request Entity Too Large',
+ 414: 'Request-URI Too Long',
+ 415: 'Unsupported Media Type',
+ 416: 'Requested Range Not Satisfiable',
+ 417: 'Expectation Failed',
+
+ 500: 'Internal Server Error',
+ 501: 'Not Implemented',
+ 502: 'Bad Gateway',
+ 503: 'Service Unavailable',
+ 504: 'Gateway Timeout',
+ 505: 'HTTP Version Not Supported',
+}
+
# maximal amount of data to read at one time in _safe_read
MAXAMOUNT = 1048576
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index ba0d5b5..34d99fc 100644
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -1296,51 +1296,4 @@ class OpenerFactory:
ph = ph()
opener.add_handler(ph)
-# Mapping status codes to official W3C names
-httpresponses = {
- 100: 'Continue',
- 101: 'Switching Protocols',
-
- 200: 'OK',
- 201: 'Created',
- 202: 'Accepted',
- 203: 'Non-Authoritative Information',
- 204: 'No Content',
- 205: 'Reset Content',
- 206: 'Partial Content',
-
- 300: 'Multiple Choices',
- 301: 'Moved Permanently',
- 302: 'Found',
- 303: 'See Other',
- 304: 'Not Modified',
- 305: 'Use Proxy',
- 306: '(Unused)',
- 307: 'Temporary Redirect',
-
- 400: 'Bad Request',
- 401: 'Unauthorized',
- 402: 'Payment Required',
- 403: 'Forbidden',
- 404: 'Not Found',
- 405: 'Method Not Allowed',
- 406: 'Not Acceptable',
- 407: 'Proxy Authentication Required',
- 408: 'Request Timeout',
- 409: 'Conflict',
- 410: 'Gone',
- 411: 'Length Required',
- 412: 'Precondition Failed',
- 413: 'Request Entity Too Large',
- 414: 'Request-URI Too Long',
- 415: 'Unsupported Media Type',
- 416: 'Requested Range Not Satisfiable',
- 417: 'Expectation Failed',
-
- 500: 'Internal Server Error',
- 501: 'Not Implemented',
- 502: 'Bad Gateway',
- 503: 'Service Unavailable',
- 504: 'Gateway Timeout',
- 505: 'HTTP Version Not Supported',
-}
+