<!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN">
<link rel=
"STYLESHEET" href=
"lib.css" type='text/css'
/>
<link rel=
"SHORTCUT ICON" href=
"../icons/pyfav.png" type=
"image/png" />
<link rel='start' href='../index.html' title='Python Documentation Index'
/>
<link rel=
"first" href=
"lib.html" title='Python Library Reference'
/>
<link rel='contents' href='contents.html'
title=
"Contents" />
<link rel='index' href='genindex.html' title='Index'
/>
<link rel='last' href='about.html' title='About this document...'
/>
<link rel='help' href='about.html' title='About this document...'
/>
<link rel=
"next" href=
"http-cookie-processor.html" />
<link rel=
"prev" href=
"base-handler-objects.html" />
<link rel=
"parent" href=
"module-urllib2.html" />
<link rel=
"next" href=
"http-cookie-processor.html" />
<meta name='aesop' content='information'
/>
<title>11.5.4 HTTPRedirectHandler Objects
</title>
<div id='top-navigation-panel' xml:id='top-navigation-panel'
>
<table align=
"center" width=
"100%" cellpadding=
"0" cellspacing=
"2">
<td class='online-navigation'
><a rel=
"prev" title=
"11.5.3 BaseHandler Objects"
href=
"base-handler-objects.html"><img src='../icons/previous.png'
border='
0' height='
32' alt='Previous Page' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"parent" title=
"11.5 urllib2 "
href=
"module-urllib2.html"><img src='../icons/up.png'
border='
0' height='
32' alt='Up One Level' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"next" title=
"11.5.5 HTTPCookieProcessor Objects"
href=
"http-cookie-processor.html"><img src='../icons/next.png'
border='
0' height='
32' alt='Next Page' width='
32'
/></A></td>
<td align=
"center" width=
"100%">Python Library Reference
</td>
<td class='online-navigation'
><a rel=
"contents" title=
"Table of Contents"
href=
"contents.html"><img src='../icons/contents.png'
border='
0' height='
32' alt='Contents' width='
32'
/></A></td>
<td class='online-navigation'
><a href=
"modindex.html" title=
"Module Index"><img src='../icons/modules.png'
border='
0' height='
32' alt='Module Index' width='
32'
/></a></td>
<td class='online-navigation'
><a rel=
"index" title=
"Index"
href=
"genindex.html"><img src='../icons/index.png'
border='
0' height='
32' alt='Index' width='
32'
/></A></td>
<div class='online-navigation'
>
<b class=
"navlabel">Previous:
</b>
<a class=
"sectref" rel=
"prev" href=
"base-handler-objects.html">11.5.3 BaseHandler Objects
</A>
<b class=
"navlabel">Up:
</b>
<a class=
"sectref" rel=
"parent" href=
"module-urllib2.html">11.5 urllib2
</A>
<b class=
"navlabel">Next:
</b>
<a class=
"sectref" rel=
"next" href=
"http-cookie-processor.html">11.5.5 HTTPCookieProcessor Objects
</A>
<!--End of Navigation Panel-->
<H2><A NAME=
"SECTION0013540000000000000000"></A><A NAME=
"http-redirect-handler"></A>
11.5.4 HTTPRedirectHandler Objects
<span class=
"note"><b class=
"label">Note:
</b>
Some HTTP redirections require action from this module's client
code. If this is the case,
<tt class=
"exception">HTTPError
</tt> is raised. See
<a class=
"rfc" id='rfcref-
90020' xml:id='rfcref-
90020'
href=
"http://www.faqs.org/rfcs/rfc2616.html">RFC
2616</a> for details of the precise meanings of the various
redirection codes.
</span>
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
3271' xml:id='l2h-
3271'
class=
"method">redirect_request
</tt></b>(
</nobr></td>
fp, code, msg, hdrs
</var>)
</td></tr></table></dt>
Return a
<tt class=
"class">Request
</tt> or
<code>None
</code> in response to a redirect.
This is called by the default implementations of the
<tt class=
"method">http_error_30*()
</tt> methods when a redirection is received from
the server. If a redirection should take place, return a new
<tt class=
"class">Request
</tt> to allow
<tt class=
"method">http_error_30*()
</tt> to perform the
redirect. Otherwise, raise
<tt class=
"exception">HTTPError
</tt> if no other handler
should try to handle this URL, or return
<code>None
</code> if you can't but
<div class=
"note"><b class=
"label">Note:
</b>
The default implementation of this method does not strictly
follow
<a class=
"rfc" id='rfcref-
90027' xml:id='rfcref-
90027'
href=
"http://www.faqs.org/rfcs/rfc2616.html">RFC
2616</a>, which says that
301 and
302 responses to
<code>POST
</code>
requests must not be automatically redirected without confirmation by
the user. In reality, browsers do allow automatic redirection of
these responses, changing the POST to a
<code>GET
</code>, and the default
implementation reproduces this behavior.
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
3272' xml:id='l2h-
3272'
class=
"method">http_error_301
</tt></b>(
</nobr></td>
fp, code, msg, hdrs
</var>)
</td></tr></table></dt>
Redirect to the
<code>Location:
</code> URL. This method is called by
the parent
<tt class=
"class">OpenerDirector
</tt> when getting an HTTP
`moved permanently' response.
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
3273' xml:id='l2h-
3273'
class=
"method">http_error_302
</tt></b>(
</nobr></td>
fp, code, msg, hdrs
</var>)
</td></tr></table></dt>
The same as
<tt class=
"method">http_error_301()
</tt>, but called for the
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
3274' xml:id='l2h-
3274'
class=
"method">http_error_303
</tt></b>(
</nobr></td>
fp, code, msg, hdrs
</var>)
</td></tr></table></dt>
The same as
<tt class=
"method">http_error_301()
</tt>, but called for the
<dl><dt><table cellpadding=
"0" cellspacing=
"0"><tr valign=
"baseline">
<td><nobr><b><tt id='l2h-
3275' xml:id='l2h-
3275'
class=
"method">http_error_307
</tt></b>(
</nobr></td>
fp, code, msg, hdrs
</var>)
</td></tr></table></dt>
The same as
<tt class=
"method">http_error_301()
</tt>, but called for the
`temporary redirect' response.
<div class='online-navigation'
>
<table align=
"center" width=
"100%" cellpadding=
"0" cellspacing=
"2">
<td class='online-navigation'
><a rel=
"prev" title=
"11.5.3 BaseHandler Objects"
href=
"base-handler-objects.html"><img src='../icons/previous.png'
border='
0' height='
32' alt='Previous Page' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"parent" title=
"11.5 urllib2 "
href=
"module-urllib2.html"><img src='../icons/up.png'
border='
0' height='
32' alt='Up One Level' width='
32'
/></A></td>
<td class='online-navigation'
><a rel=
"next" title=
"11.5.5 HTTPCookieProcessor Objects"
href=
"http-cookie-processor.html"><img src='../icons/next.png'
border='
0' height='
32' alt='Next Page' width='
32'
/></A></td>
<td align=
"center" width=
"100%">Python Library Reference
</td>
<td class='online-navigation'
><a rel=
"contents" title=
"Table of Contents"
href=
"contents.html"><img src='../icons/contents.png'
border='
0' height='
32' alt='Contents' width='
32'
/></A></td>
<td class='online-navigation'
><a href=
"modindex.html" title=
"Module Index"><img src='../icons/modules.png'
border='
0' height='
32' alt='Module Index' width='
32'
/></a></td>
<td class='online-navigation'
><a rel=
"index" title=
"Index"
href=
"genindex.html"><img src='../icons/index.png'
border='
0' height='
32' alt='Index' width='
32'
/></A></td>
<div class='online-navigation'
>
<b class=
"navlabel">Previous:
</b>
<a class=
"sectref" rel=
"prev" href=
"base-handler-objects.html">11.5.3 BaseHandler Objects
</A>
<b class=
"navlabel">Up:
</b>
<a class=
"sectref" rel=
"parent" href=
"module-urllib2.html">11.5 urllib2
</A>
<b class=
"navlabel">Next:
</b>
<a class=
"sectref" rel=
"next" href=
"http-cookie-processor.html">11.5.5 HTTPCookieProcessor Objects
</A>
<span class=
"release-info">Release
2.4.2, documentation updated on
28 September
2005.
</span>
<!--End of Navigation Panel-->
See
<i><a href=
"about.html">About this document...
</a></i> for information on suggesting changes.