๐ช๐ต๐ฎ๐ ๐ต๐ฎ๐ฝ๐ฝ๐ฒ๐ป๐ ๐๐ต๐ฒ๐ป ๐๐ผ๐ ๐๐๐ฝ๐ฒ ๐ฎ ๐จ๐ฅ๐ ๐ถ๐ป๐๐ผ ๐๐ผ๐๐ฟ ๐ฏ๐ฟ๐ผ๐๐๐ฒ๐ฟ?
The process involves the browser, your computerโs operating system, your internet service provider, the server where you host the site, and the services running on that server.
๐ญ. ๐ฌ๐ผ๐ ๐๐๐ฝ๐ฒ ๐ต๐๐๐ฝ๐://๐๐ผ๐บ๐ฒ๐๐ฒ๐ฏ๐๐ถ๐๐ฒ.๐ฐ๐ผ๐บ/๐ฝ๐ฎ๐ด๐ฒ ๐ถ๐ป ๐๐ผ๐๐ฟ ๐ฏ๐ฟ๐ผ๐๐๐ฒ๐ฟ ๐ฎ๐ป๐ฑ ๐ฝ๐ฟ๐ฒ๐๐ ๐๐ป๐๐ฒ๐ฟ
Here, https:// is a scheme that tells the browser to connect to the server using TLS. somewebsite. com is the site's domain name pointing to a specific server IP address. And /page is a path to the resource you need.
๐ฎ. ๐๐ฟ๐ผ๐๐๐ฒ๐ฟ ๐น๐ผ๐ผ๐ธ๐ ๐๐ฝ ๐๐ฃ ๐ฎ๐ฑ๐ฑ๐ฟ๐ฒ๐๐ ๐ณ๐ผ๐ฟ ๐๐ต๐ฒ ๐ฑ๐ผ๐บ๐ฎ๐ถ๐ป
After youโve typed the URL into your browser and pressed enter, the browser needs to figure out which server on the Internet to connect to. It must look for the IP address of the server hosting the website using the domain you typed to accomplish that. DNS lookup is used to do this. Here, it determines whether we can locate it in the cache; if not, DNS must search domain name servers from the root to the third level.
๐ฏ. ๐๐ฟ๐ผ๐๐๐ฒ๐ฟ ๐ถ๐ป๐ถ๐๐ถ๐ฎ๐๐ฒ๐ ๐ง๐๐ฃ ๐ฐ๐ผ๐ป๐ป๐ฒ๐ฐ๐๐ถ๐ผ๐ป ๐๐ถ๐๐ต ๐๐ต๐ฒ ๐๐ฒ๐ฟ๐๐ฒ๐ฟ
Transmission control protocol, more formally known as TCP, is used throughout the public Internet routing infrastructure to route packets from a client browser request through the router, the Internet service provider, through an Internet exchange to switch ISPs or networks, and finally to find the server with the IP address to connect to. This is an inefficient route to take to get there. Instead, many websites employ a CDN to cache static and dynamic material closer to the browser.
๐ฐ. ๐๐ฟ๐ผ๐๐๐ฒ๐ฟ ๐๐ฒ๐ป๐ฑ๐ ๐๐ต๐ฒ ๐๐ง๐ง๐ฃ ๐ฟ๐ฒ๐พ๐๐ฒ๐๐ ๐๐ผ ๐๐ต๐ฒ ๐๐ฒ๐ฟ๐๐ฒ๐ฟ
Now that the browser is connected to the server, it complies with the HTTP(s) protocol's requirements for communication. The browser sends an HTTP request to the server for the page's contents. The body, headers, and request line of an HTTP request are all present. The server can determine what the client wants to do using the information in the request line.
๐ฑ. ๐ฆ๐ฒ๐ฟ๐๐ฒ๐ฟ ๐ฝ๐ฟ๐ผ๐ฐ๐ฒ๐๐๐ฒ๐ ๐ฟ๐ฒ๐พ๐๐ฒ๐๐ ๐ฎ๐ป๐ฑ ๐๐ฒ๐ป๐ฑ๐ ๐ฏ๐ฎ๐ฐ๐ธ ๐ฎ ๐ฟ๐ฒ๐๐ฝ๐ผ๐ป๐๐ฒ
The server accepts the request and determines how to handle it depending on the data in the request line, headers, and body. The server receives the material at this URL for the GET /page/ HTTP/1.1 requests, builds the response, and then delivers it back to the client with an HTTP status code.
๐ฒ. ๐๐ฟ๐ผ๐๐๐ฒ๐ฟ ๐ฟ๐ฒ๐ป๐ฑ๐ฒ๐ฟ๐ ๐๐ต๐ฒ ๐ฐ๐ผ๐ป๐๐ฒ๐ป๐
After receiving the server's response, the browser examines the response headers for instructions on rendering the resource. The Content-Type header informs the browser that an HTML resource was received in the response body.
Image credits: manekinekko.
#technology #softwareengineering #programming #techworldwithmilan #web
Concepts Every Developer Should Know: Concurrency is NOT Parallelism
Parallelism and concurrency are two terms that often create confusion.
As Rob Pyke (one of the creators of GoLang) succinctly put it:โ Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once."
One is about managing multiple tasks at once, intermixing them to optimize resource usage.
The other involves executing multiple tasks simultaneously, typically on multiple processors or cores.
What is concurrency?
Managing several tasks on a single processor by intermixing them, giving the appearance of simultaneous execution is called concurrency.
It refers to the system's ability to switch between multiple tasks rather than performing them at once, creating an illusion of parallel execution.
Concurrency effectively utilizes processor time, especially when tasks must wait for others to finish.
What is parallelism?
Parallelism involves performing multiple tasks simultaneously.
This works by efficiently utilizing multiple processors or cores in a computing system.
The distinction between concurrency and parallelism has a direct impact on application performance and efficiency.
Because it supports simultaneous task execution, parallelism is particularly useful for compute-intensive applications that distribute tasks across multiple processors.
Asynchronous programming is used to achieve concurrency in single-threaded environments.
This approach enables a program to initiate tasks without waiting for previous ones to finish, managing multiple tasks in a non-blocking manner.
One great example is Node.js, which handles concurrency in a single-threaded model with callbacks and event loops.
Meanwhile, multi-threaded environments exploit both concurrency and parallelism.
They facilitate both concurrent task execution on a single processor and true parallel execution across multiple processors or cores simultaneously.
Multi-threaded programming languages like C# provide the framework for developers to take advantage of these features.
Understanding concurrency and parallelism is an important distinction for building high-performing and efficient software solutions.
~~
A big thank you to our partner Postman who keeps our content free to the community.
Who doesnโt love a custom theme? Postman released custom themes in their v11 release. Check it out: https://t.co/eZGOHiTy2P