What happens when you type holbertonschool.com in your browser and press Enter.
This post will understand how the web stack works, Defining topics such as Database, DNS Request, TCP / IP, etc.
When we surf the internet, we have never asked ourselves, how does it work? How do I access web pages? We only search, find and use them without even knowing the tip of the iceberg.
To understand what a DNS is, we first have to define it as an IP address translator.
What happens when we search our browser for “holbertonschool.com” is that it will search its cache and if it cannot find it, it will search the Domain Name System for the IP address belonging to the domain we are looking for.
To define TCP / IP we could say that it is the set of network protocols that enable data transfers on the internet.
Transmission Control Protocol (TCP):
TCP takes care of creating connections between them and ensuring that data is delivered without errors and in order of delivery.
Internet Protocol (IP):
IP is faster and more efficient creating data blocks to send and receive, always creating the best route, this affects the guarantee of arrival at the destination.
To define a firewall we could say that it is software that establishes rules about what is good and bad in a network (entry and exit allowed). This makes it essential to have a firewall on our servers and thus avoid hacker attacks.
This part is very important since it is the security of our information.
HTTPS stands for “HyperText Transfer Protocol Secure” and is a secure version of HTTP. HTTPS requests and responses are encrypted, ensuring users that their data cannot be stolen or used by third parties.
SSL stands for Secure Sockets Layer, the certificate must be issued by a trusted Certification Authority and when a website has this certificate, we can see a small lock icon next to the website name in the search bar.
When the request traffic is constant on the server, it is almost impossible to host them on a server, for this the load balancer is used to distribute the requests on different servers, thus also avoiding attacks on a single server.
To define a load balancer we can say that it is software that distributes requests among several servers following a load balancing algorithm.
A load balancer that we could use would be HAproxy which is a very famous load balancer, in this software we can use different algorithms such as round-robin, Weighted Round-Robin, etc.
To define a Web Server we can say that it is a software program that offers static content, such as simple HTML pages, images, or plain text files; An example of a web server could be Nginx, Apache, IIS, among others.
Basically, the Web Server is responsible for finding where the static content corresponding to the requested address is located and serving it as an HTTP or HTTPS response.
The Application server is a software program in charge of operating applications, communicating with databases, and managing user information, among other things. They work behind web servers and will be able to serve a dynamic application using the static content of the Web Server.
This allows you to create interactive pages with the user, such as saving information, starting your own session, and more.
Last and not least in our journey, we come to the databases that to define it we can say that it is an organized collection of structured information or data, that is normally stored electronically in a computer system; to manage this we will use a DBMS, which is the program that will allow us to interact with our database to add, modify data.
The main modeling methods are relational and non-relational. Relational databases can be seen as a collection of tables that represent objects, where each column is an attribute and each row is an instance of that object and non-relational databases can have many forms since the data inserted into it does not have to follow a particular scheme. They are also called NoSQL databases.