code: def _get_html_response(url, session):
      # type: (str, PipSession) -> Response
      
      if _is_url_like_archive(url):
          _ensure_html_response(url, session=session)
  
      logger.debug('Getting page %s', url)
  
      resp = session.get(
          url,
          headers={
              "Accept": "text/html",
              # We don't want to blindly returned cached data for
              # /simple/, because authors generally expecting that
              # twine upload && pip install will function, but if
              # they've done a pip install in the last ~10 minutes
              # it won't. Thus by setting this to zero we will not
              # blindly use any cached data, however the benefit of
              # using max-age=0 instead of no-cache, is that we will
              # still support conditional requests, so we will still
              # minimize traffic sent in cases where the page hasn't
              # changed at all, we will just always incur the round
              # trip for the conditional GET now instead of only
              # once per 10 minutes.
              # For more information, please see pypa/pip#5670.
              "Cache-Control": "max-age=0",
          },
      )
      resp.raise_for_status()
  
      # The check for archives above only works if the url ends with
      # something that looks like an archive. However that is not a
      # requirement of an url. Unless we issue a HEAD request on every
      # url we cannot know ahead of time for sure if something is HTML
      # or not. However we can check after we've downloaded it.
      _ensure_html_header(resp)
  
      return resp
docs: Access an HTML page with GET, and return the response.
  
      This consists of three parts:
  
      1. If the URL looks suspiciously like an archive, send a HEAD first to
         check the Content-Type is HTML, to avoid downloading a large file.
         Raise `_NotHTTP` if the content type cannot be determined, or
         `_NotHTML` if it is not HTML.
      2. Actually perform the request. Raise HTTP exceptions on network failures.
      3. Check the Content-Type header to make sure we got HTML, and raise
         `_NotHTML` otherwise.