# File lib/mechanize/http/agent.rb, line 923
  def response_redirect(response, method, page, redirects, headers,
                        referer = current_page)
    case @redirect_ok
    when true, :all
      # shortcut
    when false, nil
      return page
    when :permanent
      return page unless Net::HTTPMovedPermanently === response
    end

    log.info("follow redirect to: #{response['Location']}") if log

    raise Mechanize::RedirectLimitReachedError.new(page, redirects) if
      redirects + 1 > @redirection_limit

    redirect_method = method == :head ? :head : :get

    # Make sure we are not copying over the POST headers from the original request
    ['Content-Length', 'Content-MD5', 'Content-Type'].each do |key|
      headers.delete key
    end

    @history.push(page, page.uri)
    new_uri = resolve response['Location'].to_s, page

    fetch new_uri, redirect_method, headers, [], referer, redirects + 1
  end