What happens when you type https://www.holbertonschool.com in your browser and press Enter.
Many of us have accessed thousands of web pages, but most are unaware of how our browsers communicate with web pages. When we type https://www.holbertonschool.com our browser will divide the link into www.holbertonschool.com which will be the domain name of the page we want to go to. The domain name is the IP address of the server that hosts the website but human readable, years ago they did not use domain names, if not, IP’s since there were not millions of web pages on the internet.
That is why now we need a translator to translate the domain names to IP, in order to communicate with the servers and get a response when sending a request.
DNS request:
If our browser does not have the IP of the domain in cache since it is the first time you visit that website, then it will ask the operating system if it has it stored in its cache. If the operating system doesn’t have it cached either, it will ask DNS if it has the IP address of the domain mentioned above. The DNS (Domain Name System) is responsible for translating the domain name to IP.
The DNS first goes to the Resolver, this can be the ISP (Internet Service Provider) which will be in charge of checking if it has the IP in its cache, if it cannot find it then the Resolver will be in charge of searching outside the local network, it will consult the Root server.
The Root server knows where the TLD (Top-Level Domain) server is located so it will send the TLD address to Resolver, the TLD server Stores the Top Level Domain address information, such as “.net”, “.ORG” “ .com “, etc.
When the TLD server finds the “.com” in the domain name, it will give the address of the Authoritative Server to Resolver, the Resolver will consult the Authoritative server, which will give it the IP of the website if it exists.
TCP/IP:
The TCP / IP protocol is responsible for making the transfer of data possible on the internet. The data that will be transferred is divided into packets, TCP verifies that all the packets are sent and orders them so that the information can be received in the same way that it was sent.
Firewall:
The Firewall is a software or hardware that would be like a security guard that will protect our network in case of suspicious activity, it monitors what enters and leaves within a network. If the incoming or outgoing traffic does not comply with the firewall rules, the firewall will block it.
HTTPS/SSL:
HTTPS is a protocol that achieves encryption between the client-server, so the client is sure that their entered data will be encrypted, this means that they will not be stored on the server in readable text, so attackers will not be able to steal or view your private information.
This protocol is slower than HTTP as it needs to encrypt every user input.
HTTPS is secure and is on port 443.
Load-balancer:
Load-balancer is the solution to high traffic on our website, this software directs the traffic that goes to our servers to balance them, that is, when a client makes an HTTPS request to our server, the load-balancer will carry that request to server A, if the client makes another request to the same web server, the load-balancer will take the request to server B, this algorithm is known as Round-Robin. Each request made will be transferred between different servers to balance the load.
Web server:
A web server is simply a computer program that dispenses web pages as they are requested. The machine the program runs on is usually also called a server, and the two references are interchangeable in everyday conversation. When someone sits down at a computer and enters an address into an internet browser like Internet Explorer or Firefox, the browser sends a request off into the internet asking to view the web page found at that address. The web server is the program or machine that responds to that request, and delivers the content of the page back to the user.
Here are important features of a web server:
- Handles HTTP Protocol (static contents)
- No Server-side Programming.
- Support web-Based Applications (JSP, Servlets, PHP, HTML, etc.)
- Not support Database Connection Pooling.
- Not provide EJB support.
Application server:
An application server is a server program in a computer in a distributed network that provides the business logic for an application program. The application server is frequently viewed as part of a three-tier application, consisting of a graphical user interface (GUI) server, an application (business logic) server, and a database and transaction server.
Here are important features of a web server:
- Serves dynamic business logic.
- It helps you to manage backend logic like calculations, database, processing, etc.
- It helps you to deploy applications, dependency injection, security, etc. database pooling, and EJB.
- The superior server of Web Server.
Database:
A database is a structured, organized set of data. In computing terminology a database refers to a software used to store and organize data. Think of it as a file cabinet where you store data in different sections called tables. When you need a particular file you look into that particular section (table) and get the file (data) you need.
Here are two types of databases:
- Relational Databases: This type of database defines database relationships in the form of tables. It is also called Relational DBMS, which is the most popular DBMS type in the market. Database example of the RDBMS system include MySQL, Oracle, and Microsoft SQL Server database.
- Non-relational Databases: also called NoSQL databases, is used for large sets of distributed data. There are a few big data performance problems that are effectively handled by relational databases. This type of computers database is very efficient in analyzing large-size unstructured data.