code: def follow_redirections(self, request):
          
          log.debug(LOG_CHECK, "follow all redirections")
          if self.is_redirect():
              # run connection plugins for old connection
              self.aggregate.plugin_manager.run_connection_plugins(self)
          response = None
          for response in self.get_redirects(request):
              newurl = response.url
              log.debug(LOG_CHECK, "Redirected to %r", newurl)
              self.aliases.append(newurl)
              # XXX on redirect errors this is not printed
              self.add_info(_("Redirected to `%(url)s'.") % {'url': newurl})
              # Reset extern and recalculate
              self.extern = None
              self.set_extern(newurl)
              self.urlparts = strformat.url_unicode_split(newurl)
              self.build_url_parts()
              self.url_connection = response
              self.headers = response.headers
              self.url = urlutil.urlunsplit(self.urlparts)
              self.scheme = self.urlparts[0].lower()
              self._add_ssl_info()
              self._add_response_info()
              if self.is_redirect():
                  # run connection plugins for old connection
                  self.aggregate.plugin_manager.run_connection_plugins(self)
docs: Follow all redirections of http response.