Client-Server Network Design and the Web
Web browsers and web servers function together as a client-server system. In computer networking, client-server is a standard method for designing applications where data is kept in central locations (server computers) and efficiently shared with any number of other computers (the clients) on request. All web browsers function as clients that request information from websites (servers). Numerous web browser clients can request data from the same website. Requests can happen at all different times or simultaneously. Client-server systems conceptually call for all requests to the same site to be handled by one server. In practice, however, because the volume of requests to web servers can sometimes grow very large, web servers are often built as a distributed pool of server computers. For websites popular in different countries around the world, this webserver pool is geographically distributed to help improve the response time to browsers. If the server is closer to the requesting device, the time it takes to deliver the content is faster than if the server were further away.
Network Protocols for Web Browsers and Servers
Web browsers and servers communicate using TCP/IP. Hypertext Transfer Protocol is the standard application protocol on top of TCP/IP supporting web browser requests and server responses. Web browsers also rely on DNS to work with URLs. These protocol standards enable different brands of web browsers to communicate with different brands of web servers without requiring particular logic for each combination. Like most internet traffic, web browser and server connections typically run through a series of intermediate network routers. A basic web browsing session works like this:
A person specifies a URL in a browser. The browser initiates a TCP connection to the server or server pool (using port 80, by default) through its IP address, as published in DNS. As part of this process, the browser also makes DNS lookup requests to convert the URL to an IP address. After the server completes the acknowledgment of its side of the TCP connection, the browser sends HTTP requests to the server to retrieve the content. After the server replies with content for the page, the browser retrieves it from the HTTP packets and displays it accordingly. Content can include embedded URLs for advertising banners or other external content, which in turn triggers the browser to issue new TCP connection requests to those locations. The browser may also save temporary information, called cookies, about its connections to local files on the client computer. Any errors encountered during the request for the content might appear as HTTP status lines.