What happens when you search for Google.com

With emphasis on DNS request, HTTPS/SSL, TCP/IP, Firewall, load-balancer, Web server, application server and databases

Table of contents

No heading

No headings in the article.

When you enter a website address in a web browser (such as Opera, Chrome, Firefox, Brave, etc.), you, along with the web browser, are collectively referred to as the "client." This action is known as "making a request." The request is typically directed to a web server. Upon receiving your request, the server processes it and generates a response based on the state of the communication. In most cases, the web server's response is "OK" and successful, resulting in the delivery of the website content, including web pages, images, or other resources to your screen. This process, in which the server receives and responds to the request, is known as the "response."

Here is how it is all playing out.

DNS Request

The Domain Name System (DNS) is a system used to translate human-readable domain names (such as google.com) into IP (Internet Protocol) addresses that computers can understand. It functions as a phonebook for the Internet, linking domain names to their respective IP addresses.

The term "domain name" technically refers to the name of a website, while the address of a device connected to a computer network is known as its IP Address. Conventional computer IP addresses are 32 bits in length, comprising four sets of numbers separated by periods, for example, 192.168.70.1.

The significance of a website's name lies in its association with an IP Address. Without this mapping, a client will be unable to access web resources for a website.

When you enter a website address, such as google.com, into the address bar of a web browser and press enter, your device utilizes the IP address linked to the website to establish a connection and retrieve the requested content. It sends a request to a DNS server, which is responsible for storing and providing the IP address associated with the domain name.

The assignment of domain names is typically managed by a domain registrar or a hosting provider, whereas the DNS server is responsible for translating domain names to IP addresses.

If you open your Windows terminal console, such as Git Bash or PowerShell, and type:

ping google.com

ping google.com

You will receive outputs such as this:

Pinging google.com [216.58.223.206] with 32 bytes of data:

Reply from 216.58.223.206: bytes=32 time=55ms TTL=114

Reply from 216.58.223.206: bytes=32 time=44ms TTL=114

Reply from 216.58.223.206: bytes=32 time=44ms TTL=114

Reply from 216.58.223.206: bytes=32 time=41ms TTL=114

Ping statistics for 216.58.223.206:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 41ms, Maximum = 55ms, Average = 46ms

Do not be concerned about the specifics, as they may differ across devices connected to various networks. However, the IP address remains constant. The IP address of google.com is 216.58.223.206.

If you open your web browser and type in 216.58.223.206, the browser does not need to send a request to a DNS server. It establishes the connection and displays the same requested page as if you had typed the domain name "google.com" associated with the IP address.

The purpose of domain names is to facilitate easier memorization and navigation of web resources using their domain names instead of their IP addresses.

HTTPS/SSL

HTTPS (Hypertext Transfer Protocol Secure) is a protocol in internet-based applications and services. It is an encrypted version of HTTP. It is used to provide secured communication and exchange of data between clients and servers.

SSL (Secure Sockets Layer) is a standard security technology for establishing an encrypted link between a web server and a browser. This link ensures that all data passed between the web server and browsers remain private and integral.

When you visit google.com, your web browser sends an HTTPS request to the server, soliciting the web page or other resources you have requested. Subsequently, the server dispatches an HTTPS response back to the client, containing the requested data.

HTTPS employs SSL to encrypt data and ensure secure communication between a web server and a browser. This encryption serves to safeguard sensitive information, such as personal and financial data, from interception by unauthorized third parties.

TCP/IP

Transmission Control Protocol (TCP)/Internet Protocol (IP) is a set of transport and network layer protocols for machines to communicate with each other over the network.

Before data is exchanged or before the server responds by providing the client with the requested data, a connection must be established. As the IP deals with addressing and routing, TCP is responsible for establishing a connection between the client and the web server. TCP also ensures that data is exchanged in the correct order, to the appropriate receiver, and without errors.

HTTPS is a client-server application that operates over a TCP/IP connection. When you visit google.com, the HTTPS application runs or listens at a particular port for incoming requests. A port represents an endpoint or channel for network communication. The default port for HTTP is 80, and the web browser uses this port to connect to the web server.

Firewall

A firewall is a network security device that monitors and filters incoming and outgoing network traffic based on an organization's established security policies. At its most basic, a firewall is essentially a barrier that sits between a private internal network and the public Internet. It can be a hardware device, a software application, or both.

In the context of trying to search for goggle.com, both you and Google have firewalls, but they serve different purposes and are located at different points in the network.

Your Firewall: When you try to access goggle.com, your firewall (which could be part of your operating system or a third-party antivirus solution) acts as the first line of defence. It monitors and filters the outgoing requests from your device to the Internet. If the request is deemed safe and allowed by your firewall's security policies, it allows the request to proceed. This firewall is responsible for protecting your device from potential threats and ensuring that your outgoing traffic is secure

Google's Firewall: On the other hand, Google has its own set of firewalls and security measures in place to protect its servers and infrastructure from malicious attacks. When your request reaches Google's servers, Google's firewalls will inspect the incoming request. If the request is deemed safe and matches Google's security policies, the request will be processed, and the content of the website will be sent back to your device. Google's firewalls are crucial for protecting its servers and infrastructure from various types of attacks, including DDoS (Distributed denial of Service) attacks, malware, and unauthorized access.

Load Balancer

In the context of trying to search for google.com, this request is legitimate both to your firewall and that of Google’s web servers. However, Google’s server receives a high volume of traffic, with thousands or even millions of connections from other devices every day. This workload can overwhelm a single server and cause it to crash. As a firewall acts as a protective barrier between a server and the numerous connections from other devices, a load balancer is used to distribute incoming requests to various servers using a designated algorithm.

Load balancers help distribute the workload of the Google server to multiple individual servers, thereby increasing the reliability, efficiency, and availability of the website.

In the context of trying to search for google.com, this request is legitimate both to your firewall and that of Google’s web servers. The load balancer takes your request and assigns it to a server based on a specific algorithm.

The advantages of Load Balancers are:

Reduces the workload on an individual server

A large amount of work done at the same time due to concurrency

Scalability e.t.c.

Web server

A web server is a computer program or software that serves web contents (such as web pages, files, and other resources to clients such as web browsers, upon request. It uses the Hypertext Transfer Protocol (HTTP) to serve the files that form web pages to users. When a user enters a web address (URL) into their web browser, the browser sends a request to the web server which then processes the request and returns the requested resources to the client's browser, allowing the user to view the web page or access the desired content.

When you search for google.com, you are making a request to Google’s web server, which receives the request and either maps it to a file or a program, executes the file or program, returns an output, or returns an error message. Some examples of web servers are:

Nginx

Apache HTTP Server

Microsoft Internet Information Services (IIS)

Caddy

LiteSpeed Webserver

Application Server

An application server is a software framework that provides an environment for running web applications, including dynamic contents, business logic, and data access. It typically sits between the web server and the database and it is designed to handle the middle-tier server and database.

Although Application servers can deliver web content too, their primary job is to facilitate the execution of business logic, which is the core functionality of an application. This includes managing transactions, improving application scalability, and supporting various features like declarative transaction management. They may also incorporate web server capabilities and use HTTP as their primary protocol, supporting other protocols for interfacing with web servers.

Whenever you want to perform financial transactions or manipulate your database, the application server is involved in serving these dynamic concepts by executing the logic and providing the utmost security

Application servers allow web applications to use services like reverse proxy, clustering, redundancy, and load balancing, which improve performance and reliability. This setup allows developers to focus less on infrastructure and more on coding. Many web servers and some application servers are referred to or refer to themselves as web application servers, blurring the line between the two.

Examples of application servers include Microsoft's .NET, which positions its middle-tier applications and services infrastructure in the Windows Server operating system and the .NET Framework technologies in the role of an application server. Other examples include Zend Server for PHP-based applications, Jakarta EE for Java application servers, and Apache Tomcat, an open-source application server that runs Java Servlets, renders and delivers web pages that include JavaServer Page code and serves Java Enterprise Edition (Java EE) applications.

Database

A database is a structural collection of data that is organized in a way to efficiently store, retrieve and manage information. It serves as a central repository for storing and managing data, allowing users to easily access, update and manipulate the information stored within.

When you search for google.com and want to create an account, this is done dynamically by the application server and database. Your unique informat

ion is collected and stored in a central database repository, where it is efficiently stored for easy retrieval, management, and updates.