031.2 Web Application Architecture Flashcards
Broad meaning in technical jargon usually describes a traditional program executed locally and self-sufficient in its purpose
Operating interface and data processing components are integrated into a sing package.
Application
Adopts client/server model and its client portion is based on HTML that is obtained from the server and rendered by a browser
Web Application
Work done locally and provides an interface to the user and to layout the content in an attractive manner.
client side
Work done remotely to run the business end of the applcation.
server side
Main component of web browsers
Chrome, Edge - blink
safari - WebKit
Firefox - Gecko
rendering agent.
A mechanism that allows you to package web application clients for offline use and limited to functions that do not require immediate communication with the server
Progressive Web Apps (PWA)
Regardless of deliver method, apps written in this run on an abstraction layer created by the engine that functions as an isolated execution environment.
HTML
The central element of a web app client that runs on the server and contains the addresses for all files required for the correct presentation and operation of the client.
HTML document.
HTML alone does not have much versatility to build more elaborate interfaces and does not have
general-purpose programming features.
For this reason, an HTML document that should function as a client application is always accompanied by one or more sets of CSS and JavaScript
Main purpose is to adjust the appearance and layout of the elements of the HTML interface
CSS
Cascading Style Sheets
Procedures written with this respond to events in the browser and allows you to extend interactivity beyond hyperlinks and forms - making the page displayed by the browser like a conventional app interface.
JavaScript
term used in JavaScript is a global object with properties and methods that can be used to obtain information from any element on the HTML document
document
Client apps based on web technologies can run on any device that has a compatible web browser and thus are
multiplatform
A feature that significantly improves the performance of JavaScript applications running on the browser and is a kind of compiled JavaScript that produces source code written in a more efficient language such as C
Accellerates mainly processor-intensive activities because it avoids much of the translation performed by browsers when running a program written in conventional JavaScript.
WebAssembly
Displays messages and switches between message folders without leaving the page
Webmail client
Widely used for communication in web apps because it is based on basic methods available in HTTP
Representational State Transfer paradigm (REST)
HTTP request starts with a keyword that defines the basic operation to be performed
GET
POST
PUT
DELETE
accompanied by a corresponding URL where the action will be applied.
HTTP Header
This is both the main actor in a web app and the passive side of the communication just responding to requests made by the client
Server
y require specific configuration changes to meet
the needs of the application.
HTTP servers, such as Apache and NGINX
raditional HTTP servers directly associate the path
indicated in the request to a file on the local file system.
By default
all request mapping and corresponding programming are implemented using JavaScript
Node.js Express
convenient way to keep static content—images, JavaScript and CSS code that do not change in the short term—as
conventional files, either on the server’s own file system or distributed across
Content Deliver Network (CDN)
Other kinds of content, such as email messages in a webmail application, product details in a shopping application, and transaction logs, are more conveniently stored in a
Database Management System (DBMS)
The most traditional type of database management system the application designer defines data tables and the input format accepted by each table. The set of
tables in the database contains all the dynamic data consumed and produced by the application.
relational database
The most popular relational database language
Structured Query Language (SQL, pronounced
“sequel”), adopted by the open source databases SQLite, MySQL, MariaDB, and PostgreSQL.
An alternative to relational databases is a form of database that does not require a rigid structure
for the data. These databases are called
Although they may incorporate some features similar to those found in relational databases, the focus is on
allowing greater flexibility in storage and access to stored data, passing the task of processing that
data to the application itself. MongoDB, CouchDB, and Redis are common non-relational database
management systems
non-relational databases
NoSQL
Regardless of the database model adopted, applications have to add data and probably update it
over the life span of the applications. In some applications, such as webmail, users themselves
provide data to the database when using the client to send and receive messages. In other cases,
such as in the shopping application, it’s important to allow the application’s maintainers to modify
the database without having to resort to programming. Many organizations therefore adopt some kind of and allows non-technical users to administer the app.
Content Management System (CMS)
Client used by ordinary users
non-privileged clients
Client used by by special users to maintain and update the information presented by the application
privileged clients
What feature do modern browsers offer to overcome the poor performance of CPU-intensive web application clients?
The developers can use WebAssembly to implement the CPU-intensive parts of the client
application. WebAssembly code generally has better performance than traditional JavaScript,
because it requires less translation of instructions.
If a web application uses the REST paradigm for client/server communication, which HTTP
method should be used when the client requests the server to erase a specific resource?
REST relies on standard HTTP methods, so it should use the standard DELETE method in this
case.
Cite five server scripting languages supported by the Apache HTTP server
PHP, Go, Perl, Python, and Ruby.
Why are non-relational databases considered easier to maintain and upgrade than relational
databases?
Unlike relational databases, non-relational databases do not require data to fit rigid predefined
structures, making it easier to implement changes in the data structures without affecting
existing data