code: async def read_http_response(self) -> Tuple[int, Headers]:
          
          try:
              status_code, reason, headers = await read_response(self.reader)
          except ValueError as exc:
              raise InvalidMessage("Malformed HTTP message") from exc
  
          logger.debug("%s < HTTP/1.1 %d %s", self.side, status_code, reason)
          logger.debug("%s < %r", self.side, headers)
  
          self.response_headers = headers
  
          return status_code, self.response_headers
docs: Read status line and headers from the HTTP response.
  
          Raise :exc:`~websockets.exceptions.InvalidMessage` if the HTTP message
          is malformed or isn't an HTTP/1.1 GET request.
  
          Don't attempt to read the response body because WebSocket handshake
          responses don't have one. If the response contains a body, it may be
          read from ``self.reader`` after this coroutine returns.