Hypertext transfer protocol (HTTP) messages are discrete entities, but they are communicated via a continuous Transport control protocol (TCP) stream. It’s the responsibility of the HTTP client and HTTP server to resolve chunks of the TCP stream into responses and requests respectively.
An HTTP message consists of an header and a payload. The HTTP header provides metadata about my browser and about the request. This “metadata” includes the Universal resource locator (URL) itself, which is actually an HTTP construct, as well as the requested HTTP content type. If I have visited the site before, the request may also contain one or more Persistent identifiers (“cookies”). It probably also contains more information about my browser than I would like: the browser is free because I am the product.
When using Transport layer security (TLS), the HTTP request itself is encrypted, but the TCP datagram above it is transmitted in plaintext. This means that your ISP knows exactly what servers you’re talking to, even on an “encrypted channel,” unless you use a Virtual private network (VPN).