code: async def read_http_request(self) -> Tuple[str, Headers]:
          
          try:
              path, headers = await read_request(self.reader)
          except ValueError as exc:
              raise InvalidMessage("Malformed HTTP message") from exc
  
          logger.debug("%s < GET %s HTTP/1.1", self.side, path)
          logger.debug("%s < %r", self.side, headers)
  
          self.path = path
          self.request_headers = headers
  
          return path, headers
docs: Read request line and headers from the HTTP request.
  
          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 request body because WebSocket handshake
          requests don't have one. If the request contains a body, it may be
          read from ``self.reader`` after this coroutine returns.