Traditionally, a web application is increasingly run on the server side. There are also approaches as distribution variants that provide for a more client-heavy execution of a web application. The web client is becoming an increasingly independent entity to free up server-side resources. These approaches are particularly relevant for B2C applications – such as Facebook or Gmail – as such projects are expected to generate large numbers of users. The user experience can also be improved by eliminating the need to trigger client-server communication for every interaction with the web client, which slows down the response times of web applications.

By definition, a Rich Internet Application (RIA) requires a higher level of program logic in the client, for example, to perform calculations on the client instead of on the server. Strictly speaking, web projects with web applications that use JavaScript (including AJAX), Java applets, Flash animations, ActiveX plugins, etc. are also RIAs, as long as these elements are involved in the interaction with the user.
A single-page web application combines the RIA approach with web services. Here, the complete presentation layer of a web application is implemented on the client side. Additional functionalities of the server-side concept as well as data storage as a buffer for offline operation of the web applications can also be executed on the client. It is therefore a fat client architecture for web applications. In this approach, the web server is only responsible for distributing Javascript, CSS, and image files, and for delivering payloads via web services (e.g., via REST API). Such approaches often give rise to so-called hybrid apps. It combines the advantages of native apps and web apps by being able to access the software components of the mobile device and operate different platforms at the same time.
---
Pros of Web App
Web applications only require a web browser on the user’s computer, which is usually already available. Unlike traditional desktop applications, there is no need to install any additional software, except for browser plugins such as Flash. As a result, web applications achieve a high degree of platform independence, provided that many browsers are supported.
If the logic of a web application needs to be changed, changes are only necessary at a central location – on the web server – which has a positive effect on maintenance costs. This also results in security advantages: Security vulnerabilities can be fixed immediately, and even if the web application is completely compromised, no other programs on the user system are usually at risk.
Cons of Web App
To use a web application, a connection to the web server is required. The data rate of the connection must also be designed to meet the requirements of the web application. By definition, this excludes web applications for a number of use cases, such as offline mobile use. Web applications identify logged-in users by session ID. This can lead to security issues.
Ideally, web applications should work properly with all web browsers. In practice, however, this is by no means a matter of course, as browsers interpret HTML differently – despite existing standards (W3C). The slight deviation in the display between different browsers is usually insignificant, more devastating are differences in the JavaScript interpretation, which is why browser switches often have to be used, sometimes even for different browser versions. In addition, the request cycle described above only allows for asynchronous processing, which excludes or significantly complicates a number of application areas (e.g. video editing) as a web application. Furthermore, the possibilities for implementing user interaction options as well as access to the client’s hardware resources are much more limited.