A web application is an application program based on the client-server model. Unlike traditional desktop applications, web applications are not installed locally on the user’s computer. Some of the data processing takes place on a remote web server. The results of the data processing are transmitted to the user’s local client computer (thin client). A web application is usually used via a web browser. This usually communicates with the web server via HTTP.
However, parts of the execution logic should not be executed on the server first, but on the client computer, especially for preliminary validation. In this way, input errors are already detected locally. Feedback to the user is thus immediate without waiting for a response from a remote server. Using AJAX technology, only parts of the content in the web client are updated without having to call up the website again. Such a distribution can be extended to a fat client architecture. Due to the proliferation of internet-enabled, mobile smartphones and tablet computers, the use of the abbreviation web app is becoming increasingly widespread.
You start a web application by entering the URL of the web server in the browser and sending an HTTP request. The web server receives the request and passes it to the web application. This generates or loads the HTML source code of a web page, which is sent back to the user’s browser by the web server (HTTP response). This web page is the graphical user interface of the web application. If you look at the layer architecture of a web application, the presentation layer is executed in the web browser (thin client). Parts of the logic layer and data storage are carried out on the server side.
By clicking on a hyperlink on this website or filling out and submitting a form, you start a new request to the web server. Typically, further information, such as the entries made in the form (HTTP POST), the parameters of the link (HTTP GET) and the data of an HTTP cookie, are transmitted to the web server and processed as input by the web application. Via interfaces such as the Common Gateway Interface or FastCGI, the web application is integrated within the web server. In this way, requests are routed to the web application and the web application’s outputs are sent back in response. The processing of such an HTTP request by the web application is also called a request cycle.
Image credit: https://www.qulix.com/about/web-app-vs-desktop-app/
When using web apps, session data (e.g. order data from a web shop) is stored in databases or files on the server side. User-related data may also be stored client-side through HTTP cookies. Server-side session information consumes server resources per active user session. Server-side session information also makes it difficult to scale out web applications. Alternative architectural approaches for web applications, such as single-page web applications or the REST paradigm, therefore combine server-side and client-side execution.
While a web application once only generated the HTML source code of the web pages, since then images, animations, videos, audio files and PDF documents have also been generated.