
Client-Server Architecture
A Web Application is a client-server application in which the browser is the client and the web server (in the broadest sense) is the server.
The main part of the application, as a rule, is located on the side of the web server, which processes the received requests in accordance with the business logic of the product and generates a response sent to the user. At this stage, the browser is included in the work, it is he who converts the received response from the server into a graphical interface understandable to the user.
The “Client-Server” architecture defines the general principles for organizing interaction in a network where there are servers, node-suppliers of some specific functions (services), and clients (consumers of these functions). Practical implementations of such an architecture are called client-server technologies.
Two-Tier architecture – distribution of three basic components between two nodes (client and server). The two-tier architecture is used in client-server systems, where the server responds to client requests directly and in full.
The location of the components on the client or server-side determines the following main models of their interaction within a two-tier architecture:
- Terminal Server is a distributed representation of data.
- File server – access to a remote database and file resources.
- The database server is a remote representation of data.
- Application Server is a remote application.
The client is a browser, but there are exceptions (in cases where one web server (WS1) makes a request to another (WS2), the role of the client is played by the web server WS1). In the classical situation (when the browser plays the role of the client), in order for the user to see the graphical interface of the application in the browser window, the latter must process the received response from the web server, which will contain information implemented using HTML, CSS, JS (the most used technologies ). It is these technologies that “make it clear” to the browser how exactly it is necessary to “draw” everything that it received in the response.
A Web Server is a server that accepts HTTP requests from clients and issues HTTP responses to them. A web server refers to both the software that performs the functions of a web server and the computer itself on which this software runs. The most common types of web server software are Apache, IIS, and NGINX. The application under test runs on the web server, which can be implemented using a wide variety of programming languages: PHP, Python, Ruby, Java, Perl, etc.
The Database is not actually part of the web server, but most applications simply cannot perform all the functions assigned to them without it, since it is in the database that all the dynamic information of the application (credentials, user data, etc.) is stored.
A database is an information model that allows you to store data about an object or group of objects in an orderly manner that has a set of properties that can be categorized. Databases operate under the control of so-called database management systems (hereinafter referred to as DBMS). The most popular DBMS are MySQL, MS SQL Server, PostgreSQL, Oracle (all client-server).
Three-Tier Architecture – a network application is divided into two or more parts, each of which can be run on a separate computer. Dedicated parts of the application interact with each other by exchanging messages in a pre-agreed format.
The third link in the three-tier architecture is the application server, i.e. components are distributed as follows:
- Data presentation is on the client side.
- Application component – on a dedicated application server (as an option, performing the functions of middleware).
- Resource management – on the database server, which represents the requested data.
The three-tier architecture can be extended to a multi-tier one (N-tier, Multi-tier) by allocating additional servers, each of which will provide its own services and use the services of other servers of different levels.
The two-tier architecture is simpler since all requests are served by one server, but it is precisely because of this that it is less reliable and imposes increased requirements on server performance.
The three-tier architecture is more complicated, but due to the fact that the functions are distributed between servers of the second and third levels, this architecture provides:
- High degree of flexibility and scalability.
- High security (because security can be defined for each service or layer).
- High performance (because tasks are distributed between servers).
Join the discussion at Everything_QA