code: def _follow_redirection(new_args, &block)
  
        # parse location header and merge into existing URL
        url = headers[:location]
  
        # cannot follow redirection if there is no location header
        unless url
          raise exception_with_response
        end
  
        # handle relative redirects
        unless url.start_with?('http')
          url = URI.parse(request.url).merge(url).to_s
        end
        new_args[:url] = url
  
        new_args[:password] = request.password
        new_args[:user] = request.user
        new_args[:headers] = request.headers
        new_args[:max_redirects] = request.max_redirects - 1
  
        # pass through our new cookie jar
        new_args[:cookies] = cookie_jar
  
        # prepare new request
        new_req = Request.new(new_args)
  
        # append self to redirection history
        new_req.redirection_history = history + [self]
  
        # execute redirected request
        new_req.execute(&block)
      end
docs: Follow a redirection
  
   @param new_args [Hash] Start with this hash of arguments for the
     redirection request. The hash will be mutated, so be sure to dup any
     existing hash that should not be modified.