SPA
(Single Page Application) is a single-page interactive application. It is important that it is not only located on one page, but also, like a full-fledged program, is interactive. Thus, an informational website can consist of one page, but, in fact, it is not a SPA. In a single-page web application, the user stays on the same page by switching between tabs. Moreover, only the necessary parts of the content are loaded and updated, which plays in favor of the speed of the SPA
An example of a single-page application is Gmail. Note that when you switch between message lists, the page address does not change. This is a distinctive feature of SPA.
The main language for creating SPAs is JavaScript. You can create a small one-page application using the jQuery library. However, this option is not the most optimal for large projects. It is better to use the Vue, React, or Angular frameworks.
MPA
MPA (Multi Page Application) is a traditional multi-page web application. When a user interacts with a website, new HTTP pages are loaded. Therefore, data exchange is slower than in SPA. Especially if there are problems with the Internet connection or website hosting.
PWA
A progressive program is close to native computer and mobile applications in terms of its capabilities, functions, and quality of user experience.
There is no clear boundary between non-PWA and PWA applications. But a number of characteristics can be identified.
In particular, a PWA must contain a proxy layer (Service Worker) and a Web App manifest. Essentially, the browser acts as a virtual machine to run web applications, just as Windows runs exe files and Android runs apk files.
Service Worker is a proxy layer between the server and client side. It is located in the browser, and all requests go through it. Thus, there are two front-end layers: one contains the interface and the other the logic. This allows you to run full-fledged applications for the Internet. Service Worker is usually written in pure JS.