Andres Riancho added the comment:
As mentioned in the RFC, and quoted by orsenthil, "however, most
existing user agent implementations treat 302 as if it were a 303
response", which is true for urllib2.py too ( see line 585 ):
http_error_301 = http_error_303 = http_error_307 = http_error_302
Which means: "all redirections are treated the same way". So, if we want
to strictly respect the RFC, we should implement 4 different methods:
- http_error_301
- http_error_303
- http_error_307
- http_error_302
But urllib2 is implementing the RFC "the easy way", this is: "threat all
redirections the same, threat them as 303". 303 redirections perform a
GET on the URI, which urllib2 does here:
return Request(newurl,
headers=req.headers,
origin_req_host=req.get_origin_req_host(),
unverifiable=True)
These line does not clone the old request completely, it creates a GET
request. If we create a GET request (handling 302 as 303) we should
remove the content length header!
__________________________________
Tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue1401>
__________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com