In addition to an information architecture and a code base organization architecture (like MVC), we also have the cross-cutting issue of how to distribute the different parts of an app when it is deployed, so we also need a deployment architecture.
together with its start web page. While using local data storage (with
does not require any connection to the Internet after the initial loading
of the app, using cloud storage via HTTP messaging with the
XMLHttpRequest (XHR) API does require an Internet
Typically, but not necessarily, a front-end web app is a single-user application, which is not shared with other users.
A back-end web app is a web app where essentially all work is performed by the back-end component, including data validation and user interface page creation. It does not have any front-end component, except the HTML-forms-based, and possibly JS-enriched, user interface pages sent to the user's front-end computer for being rendered by a web browser.
One important task of the controller, especially in back-end apps, is routing: mapping incoming HTTP request messages to a use case of the app, typically represented by a method of a class, such that either the corresponding user interface is provided in the form of a web page or the request message represents the corresponding form submission, which can be directly processed.
The two diagrams shown in Figure 6.4 illustrate the distinction between the traditional back-end web app architecture and the new architecture of a (truly) distributed web app.