HTTP the Definite Guide says
Before an HTTP client can send a message to a server, it needs to establish a TCP/IP connection between the client and server using Internet protocol (IP) addresses and port numbers.
In TCP, you need the IP address of the server computer and the TCP port number associated with the specific software program running on the server. This is all well and good, but how do you get the IP address and port number of the HTTP server in the first place? Why, the URL, of course! We mentioned before that URLs are the addresses for resources, so naturally enough they can provide us with the IP address for the machine that has the resource.
Where do we get URLs? From a HTTP request to be sent, or by HTTP client passing it independently of the HTTP request?