I have recently been told by a coworker that the query string of an HTTPS GET request is visible to third parties, and I set out to prove him wrong. But finding any explicit description of URL parsing has been difficult.
My understanding has been that the URL is only sent piecemeal, with the domain passed into the IP header, the port passed into the TCP header, etc. In the particular case of an HTTPS GET, this would mean that the query string will only reside in the HTTP header, which in turn resides in the TLS body, which is end-to-end encrypted and therefore safe.
My question, then, is twofold:
- First, am I right about the particular case of an HTTPS GET query string?
- Second, can anyone provide me with a general anatomy of a URL with an eye toward how its parts translate into a TCP/IP request?