Web Servers and Browsers

A web server is computer hardware and software specifically designed to serve hypermedia content on the World Wide Web, in response to requests from clients via the HTTP/HTTPS protocol. Clients, most often web browsers, initiate communication by requesting a web page or any other resource using HTTP, and the server responds with the content of that resource or an error message. A web server can also accept, process, and store inputs sent from the client if programmed to do so.

The hardware used to run a web server can vary according to the volume of requests that it needs to handle and the type of content it serves. A server can be a single computer for serving limited text content or a cluster of powerful computers for serving video content which requires high processing power, memory and bandwidth.

Web browsers are applications that run on your computer or your smartphone and are specifically designed to send requests for content to a web server and receive and display that content to the user. Web browsers are referred to as "thin clients" since they do very little processing and focus on simply displaying the content served by the web server.

Web Client-Server Architecture

There are some challenges with traditional client-server architectures, although they are still used for many applications. The client is usually a program with the presentation logic, and maybe some application logic, that needs to be installed on every user's computer. The server is more likely a common computer deployed somewhere on the local network or the Internet.

The server is under the application owner's control and changes to the application logic can be made at any time. The clients will simply receive the outputs as per the new logic and display them accordingly. However, any change to the client program requires an update to be installed on the client's computer. If there are a large number of users of the client program, providing updates to each user on their local computer is a cumbersome task.

The other challenge is that since application programs work only with a specific operating system, the client program needs to be compiled into a version for every operating system that the users may have. While there are only three popular operating systems, maintaining even three versions of an application can be a challenge.

The web client-server architecture takes a different approach. All the presentation, processing, and data management instructions are written in programs hosted on the web server. The client, or the web browser, is programmed to simply read those instructions and display the application screens and data to the user accordingly. All web browsers will interpret the instructions in the same way, so regardless of what web browser you use, you will see the same screens and the same data.

Given that the World Wide Web is an integral part of our lives today, the three most widely used operating systems, have a web browser already installed. So users can start connecting to web servers and running web applications without further installing application-specific clients.

Any change that the application owner makes in the application logic (presentation, processing, or data) is reflected immediately on every web browser without requiring any installation on the user's local computer.

The web browser can be considered to be a universal client for any web application. The web application architecture, languages, and communication protocols are designed in a way that any browser can send requests to the server to receive content or execute transactions. The four most widely used web browsers are Google Chrome, Microsoft Edge, Firefox and Safari (for MacOS systems from Apple).

Web Server