If you are software tester, you must know how to test Web applications. And in order to understand how to test Web applications, you must have a basic familiarity with the client-server process. Click on the image at the bottom of this entry to see a diagram which describes the process. Imagine you are at a machine, with Internet Explorer running. Your machine is the client, and IE is the client software. Suppose you’re at some Web site which sells books. You type in some search term such as "test automation" and click on the search button, indicated by Step #1 in the diagram. This generates an HTTP request which is sent to the Web server, Step #2. The HTTP Request says in essence, "please construct a Web page which lists all the books which are related to the text ‘test automation’". The Web server accepts this request. In a Microsoft environment, the Web server is running Internet Information Services (IIS) and this is the server software. IIS then executes a script — typically VBScript (for ASP technology), or C# or VB.NET (for ASP.NET) — which dynamically builds an HTML page (step #3 in the diagram). After this HTML page has been created, the page is returned as an HTTP Response to the client (step #4). The client software, IE, accepts the HTML page and then renders the page in human-friendly form (step #5).
The process is pretty straightforward, but it’s absolutely essential to keep this process in mind when you are writing Web application software test automation. By the way, in the process above, in step #3, when IIS is executing a script/program which creates the HTML response page, IIS will often need to send an intermediate request to a database server in order to get the data IIS needs to build the page. Interestingly, this added complexity does not always influence writing your test automation.