> For the complete documentation index, see [llms.txt](https://c01d43am.gitbook.io/ethical-hacking/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://c01d43am.gitbook.io/ethical-hacking/introduction-to-web-architecture-and-understanding-common-security-misconceptions/web-server-architecture.md).

# Web Server Architecture

**Now, let’s look at these 5 servers we had read about in the previous chapter.**&#x20;

So, like we said, it is not necessary to have these as 5 different servers, but a combination of these can be present in one physical server, depending on the requirement of the application.&#x20;

Now, this server will have some architecture which should be appropriate for the kind of functions that the server will perform.&#x20;

This architecture is called a web server architecture. It is made up of these 5 basic elements. Let’s look at each one of these.&#x20;

**Server OS-** Just like every computer has an operating system, similarly the computer that hosts the website also needs to have an OS. &#x20;

Examples are Linux, Windows, IBM AIX, etc.&#x20;

**Server Software-** We know that every website needs to address the incoming requests of the users. This request could be for a web page in the website, or for any other functionality that the website provides. For this, the server needs to run the code of the website to generate a response for the user. But, to handle all this function, the server needs a software which is called the server software.&#x20;

Examples are Apache, nginx, IIS, etc.&#x20;

**Programming Language-** Every website has a backend part which is basically written as lines of code, using a programming language. So, the web server architecture includes a particular programming language that is used to write this code.&#x20;

Examples are: PHP, Python, Perl, Ruby, ASP (.NET), JSP, etc.&#x20;

**Database Software-** Every website has users and it stores the information of these users in the database. So your login credentials, your preferences, cart items in case of an e-commerce, or any other details that you provide while accessing a website is stored in the database in a secure and efficient manner. And to access this data from the database, a software is required. This is known as the database software.&#x20;

Examples are: MySQL, MS SQL, MongoDB, Casandra DB, Postgre SQL, etc.&#x20;

**Front End Components-** So, we know that every website has a frontend or a user interface, which is what the user sees on the browser while browsing through the website. So, there needs to be a front end language to write the front ends code.&#x20;

Examples are: HTML, javascript, Jquery, CSS, Bootstrap, etc.&#x20;

Now, we know that the architecture will contain one of each of these elements. We will look at some of the most common combinations of web server architecture in the next lesson.&#x20;
