Servers and Web Servers, Clients and Browsers

We all know that the websites on the Internet are all hosted on a Server Computer. But the question is do you really know what a server, a client or a browser is?

Well, from a Web Developers view a server is basically a software. A server is a computer program that provides services to other computer programs (and their users) in the same or other computers. The computer that a server program runs in is also frequently referred to as a server but actually, it is just another computer (Maby a very powerful one that's it).

A Web Server is one type of server that serves files in response to HTTP request made to it. It is pre- programmed to serve a particular file(Mostly an HTML file but not necessarily) in responses to every HTTP request. However, we must remember that a Web Server is not the only type of server.

Remember that Web Server is not the only type of server. A DBMS (Data Base Management System) is also a type of server that responds to SQL requests.

A Web Server must be capable of:
  1. Listen on the network
  2. Accept a request
  3. Process the request
  4. Output a response in a format that the browser will understand
  5. Send the response back over the same connection on the network

The step 1,2 and 5 here are generic to all web apps. Web Developers do not write code for these, for these jobs. Many popular Web Server Softwares are available like Apache HTTP Server, Microsoft IIS(Internet Information Services), Nginx etc, to handle these three steps. So you just have to install them on the computer and you are ready to go.

So, mainly the task of a Web Developer is to write programs to handle steps 3 and 4, that is process the request and output a response in a form that the browser understands.

Just like servers a client is also a software that requests the server for some service. A client that makes requests to a Web Server is called a Browser. A browser is a software that you have to install to access Web Apps.

A Browser is a software that makes HTTP requests for you and renders the response data. The response data may not always be an HTML file. It could be a pdf, a doc file or even an image. Most browsers support rendering of all such type of files. Modern Browsers can even render code written in Javascript so that the pages can now be dynamic and interactive.

Comments