Once the server is set up, we can get down to business. The client has the easy end: it wants web action on a particular URL such as http://www.apache.org/. What happens?
The browser observes that the URL starts with http: and deduces that it should be using the HTTP protocol. The "//" says that the URL is absolute,[††] that is, not relative to some other URL. The next part must be the name of the server, www.apache.org. The client then contacts a name server, which uses DNS to resolve this name to an IP address. At the time of writing, this address was 188.8.131.52. One way to check the validity of a hostname is to go to the operating-system prompt[‡‡] and type:
[††] Relevant RFCs are 1808, Relative URLs, and 1738, URLs.
[‡‡] The operating-system prompt is likely to be ">" (Win95) or "%" (Unix). When we say, for instance, "Type % ping," we mean, "When you see `%', type `ping'."
> ping -c 5 www.apache.org
% ping -c 5 www.apache.org
If that host is connected to the Internet, a response is returned:
PING www.apache.org (184.108.40.206): 56 data bytes 64 bytes from taz.apache.org (220.127.116.11): icmp_seq=0 ttl=247 time=1380 ms 64 bytes from taz.apache.org (18.104.22.168): icmp_seq=1 ttl=247 time=1930 ms 64 bytes from taz.apache.org (22.214.171.124): icmp_seq=2 ttl=247 time=1380 ms 64 bytes from taz.apache.org (126.96.36.199): icmp_seq=3 ttl=247 time=1230 ms 64 bytes from taz.apache.org (188.8.131.52): icmp_seq=4 ttl=247 time=1360 ms --- www.apache.org ...