What happens when you type holbertonschool.com in your browser and press Enter
Burners-Lee invents The World Wide Web and the very first web browser: WorldWideWeb (the name was later changed to Nexus). At the time Burners-Lee worked as a software engineer for The European Organization for Nuclear Research (CERN), and wanted to find a solution to accessing information across multiple computers. In March of 1989 he introduced a document called “Information Management: A Proposal”, which would eventually become the Internet.
By fall of the next year Burners-Lee had written HTML, UFI, HTTP, and developed the very first web page editor and browser. If you’re curious to see what the Internet and early website design first looked like, you should check out our previous blog A Brief History on the Transformation of Web Design, where we look at the first website ever made.
A web browser’s primary utility is to render HTML — the code that is used in web design and to mark-up web pages. The process begins when you input a website’s URL into the address bar of your browser. Your browser will then work to locate and request the website page’s information from its web server. The browser receives the file which informs it on how to display the information on the web page. Your browser will then interpret the file and display the page for you — as the user, to read and interact with.
A URL (Uniform Resource Locator) is a unique identifier used to locate a resource on the Internet. Every URL is made up of multiple parts, and the way yours are built will have a variety of effects on your site’s security and Search Engine Optimization (SEO).
The DNS Request
DNS is often referred to as the internet’s phone book because it converts easy-to-remember hostnames for humans like www.holbertonschool.com, web browsers interact through Internet Protocol (IP) addresses like example 3188.8.131.52. DNS translates domain names to IP addresses so browsers can load Internet resources.
Each device connected to the Internet has a unique IP address which other machines use to find the device. DNS servers eliminate the need for humans to memorize IP addresses such as 192.168.1.1 (in IPv4), or more complex newer alphanumeric IP addresses such as 2400:cb00:2048:1::c629:d7a2 (in IPv6).
We mentioned how domain names actually represent IP addresses, but IP is not the only type of protocol use by the Internet. The TCP/IP stands for Transmission Control Protocol/Internet Protocol. TCP/IP is a set of standardized rules that allow computers to communicate on a network such as the internet. It’s a set of rules that define how servers and clients interact over the network, and how data should be transferred, broken into packets, received, etc.
Here’s one way it does that. If the system were to send the whole message in one piece, and if it were to encounter a problem, the whole message would have to be re-sent. Instead, TCP/IP breaks each message into packets, and those packets are then reassembled on the other end. In fact, each packet could take a different route to the other computer, if the first route is unavailable or congested.
In addition, TCP/IP divides the different communications tasks into layers. Each layer has a different function. Data goes through four individual layers before it is received on the other end (as explained in the following section). TCP/IP then goes through these layers in reverse order to reassemble the data and to present it to the recipient.
A firewall around a computer or network is like the wall around a castle or city. It protects the computer or network by limiting points of access and providing criteria that must be met before being allowed to enter.
In the physical world, a guard might make decisions based on where a person is trying to go, where they came from, or both before admitting them. A firewall functions analogously, looking at each packet of data to determine where it came from and where it is going, or both, and deciding if the packet should be accepted and allowed to continue on its way or if it should be denied or dropped. As in the real world, a denied packet is turned from the gate and sent back to where it came from. Unlike the real world, a dropped packet just ceases to exist.
A firewall may be implemented as a hardware device (such a Linksys or Netgear firewall you can buy in an electronics store) or in software, such as the Windows Firewall or the MacOS Firewall. Unix and Linux users may be familiar with the iptables firewall.
Security and Encryption: HTTPS/SSL
SSL is an acronym for Secure Sockets Layer. A type of digital security that allows encrypted communication between a website and a web browser. The technology is currently deprecated and has been replaced entirely by TLS.
HTTPS is a secure extension of HTTP. Websites that install and configure an SSL/TLS certificate can use the HTTPS protocol to establish a secure connection with the server.
- The goal of SSL/TLS is to make it safe and secure to transmit sensitive information including personal data, payment or login information.
- It’s an alternative to plain text data transfer in which your connection to a server is unencrypted, and it makes it harder for crooks and hackers to snoop on the connection and steal your data.
- Most people are familiar with SSL/TLS certificates, which are used by webmasters to secure their websites and to provide a secure way for people to carry out transactions.
- You can tell when a website is using one because you’ll see a little padlock icon next to the URL in the address bar.
HTTPS adds encryption, authentication, and integrity to the HTTP protocol:
Encryption: Because HTTP was originally designed as a clear text protocol, it is vulnerable to eavesdropping and man in the middle attacks. By including SSL/TLS encryption, HTTPS prevents data sent over the internet from being intercepted and read by a third party. Through public-key cryptography and the SSL/TLS handshake, an encrypted communication session can be securely set up between two parties who have never met in person (e.g. a web server and browser) via the creation of a shared secret key.
Authentication: Unlike HTTP, HTTPS includes robust authentication via the SSL/TLS protocol. A website’s SSL/TLS certificate includes a public key that a web browser can use to confirm that documents sent by the server (such as HTML pages) have been digitally signed by someone in possession of the corresponding private key. If the server’s certificate has been signed by a publicly trusted certificate authority (CA), such as SSL.com, the browser will accept that any identifying information included in the certificate has been validated by a trusted third party.
HTTPS websites can also be configured for mutual authentication, in which a web browser presents a client certificate identifying the user. Mutual authentication is useful for situations such as remote work, where it is desirable to include multi-factor authentication, reducing the risk of phishing or other attacks involving credential theft. For more information on configuring client certificates in web browsers, please read this how-to.
A load balancer acts as the “traffic cop” sitting in front of your servers and routing client requests across all servers capable of fulfilling those requests in a manner that maximizes speed and capacity utilization and ensures that no one server is overworked, which could degrade performance. If a single server goes down, the load balancer redirects traffic to the remaining online servers. When a new server is added to the server group, the load balancer automatically starts to send requests to it.
In this manner, a load balancer performs the following functions:
- Distributes client requests or network load efficiently across multiple servers
- Ensures high availability and reliability by sending requests only to servers that are online
- Provides the flexibility to add or subtract servers as demand dictates
The Web server
The main job of a web server is to display the website content. If a web server is not exposed to the public and is used internally, then it is called Intranet Server. When anyone requests for a website by adding the URL or web address on a web browser’s (like Chrome or Firefox) address bar (like www.economictimes.com), the browser sends a request to the Internet for viewing the corresponding web page for that address. A Domain Name Server (DNS) converts this URL to an IP Address (For example 192.168.216.345), which in turn points to a Web Server.
The Web Server is requested to present the content website to the user’s browser. All websites on the Internet have a unique identifier in terms of an IP address. This Internet Protocol address is used to communicate between different servers across the Internet. These days, Apache server is the most common web server available in the market. Apache is an open source software that handles almost 70 percent of all websites available today. Most of the web-based applications use Apache as their default Web Server environment.
The Application server
An application server is a server that is specially designed in a way that can run applications. This type of server includes both hardware and software. These application servers provide an environment to run the programs properly. The main purpose of this server is to run the software. But the application servers are greatly beneficial for important hardware specifications like CPU and RAM. The most important software that is operating system runs with an application server. The application server determines the software that can be run through it. By the end of this article, you will know all about what is application server.
Though a web server is designed to serve web pages, it is not able to run demanding web applications. But an application server ensures the processing power and memory to run these demanding web applications. It also provides the environment to run specific applications. A cloud service or a Linux-based server can provide a web interface. But they are not able to run web applications. They can highly send data to a Windows-based server. The application server processes the data and then, sends it to the webserver. And this is the output of the web browser.
we show the general flow for web application servers:
- The client opens a browser and requests access to a website
- The web server receives the HTTP request and responds with the desired webpage
- The web server handles static data requests, but the client wants to use an interactive tool
- As a dynamic data request, the web server transfers the request to an application server
- The application server receives the HTTP request and converts it into a servlet request
- The servlet reaches the database server, and the app server receives a servlet response
- The app server translates the servlet response into HTTP format for client access
The last step in our web infrastructure is the Data Base Management System (DBMS). A database is a collection of data, and the DBMS is the program that is going to interact with the database and retrieve, add, modify data in it.