وقتی آدرس یک سایت را وارد می‌کنیم، پشت صحنه چه اتفاقی می‌افتد؟

What Happens Behind the Scenes When You Enter a Website URL? وقتی آدرس یک سایت را وارد می‌کنیم، پشت صحنه چه اتفاقی می‌افتد؟

What Happens Behind the Scenes When You Enter a Website URL?

Introduction

Have you ever wondered what actually happens when you type a website address such as https://just-programmer.ir into your browser and press Enter?

From the outside, it looks simple: you enter an address and a webpage appears. Behind the scenes, however, the browser communicates with DNS services, network systems, web servers, and its rendering engine to retrieve website resources and turn them into a visible webpage.

From resolving a domain name to establishing a secure connection, sending an HTTP request, receiving HTML files, and rendering the final page, several different processes work together.

In this article from Just Programmer, we will explore what happens when you visit a website and how a browser turns a URL into a webpage.


1. Entering a Website URL

The process begins when a user enters a website address into the browser's address bar.

For example:

https://just-programmer.ir

A URL contains different parts:

  • HTTPS: The protocol used for secure communication.

  • just-programmer.ir: The website's domain name.

  • Path: The path to a specific resource, if present.

  • Query Parameters: Additional parameters in the URL, if present.

The browser parses the URL to determine which resource it needs to access and what type of connection is required.

For example:

https://just-programmer.ir/articles

In this case, the browser considers both the domain and the /articles path when creating the request.


2. What Is DNS and How Does It Resolve a Domain?

Computers use IP addresses to communicate with destinations across a network. However, remembering IP addresses is difficult for people, so domain names are used instead.

For example, instead of entering an IP address, we use:

just-programmer.ir

This is where DNS becomes important.

DNS stands for Domain Name System. It provides a system for resolving domain names into information needed to locate a network destination, including IP addresses.

A Simplified DNS Lookup Process

When a browser needs an IP address, the system may follow steps such as:

  1. Checking the browser cache.

  2. Checking operating system or local resolver caches.

  3. Sending a request to a DNS Resolver if necessary.

  4. The resolver checking cached information or querying DNS servers.

  5. Receiving a response for the domain.

  6. Using the response to connect to the destination.

In practice, not every request needs to go through every step because DNS information may already be cached.

Example

Domain:
just-programmer.ir

DNS:
Domain → IP Address

A domain can point to one or multiple IP addresses, and DNS responses do not always return a single fixed IP address.


3. What Is an IP Address and Why Is It Needed?

An IP address is a network identifier used to identify a destination on an IP network.

The two main versions are:

  • IPv4: For example, 192.168.1.1.

  • IPv6: For example, 2001:db8::1.

Once the browser has the information needed to locate the destination, it can attempt to establish a connection with the server.

DNS itself does not transfer the webpage content. Its role is to help resolve the destination information.


4. Establishing a Connection with the Server

After the destination is determined, the browser needs to establish a suitable network connection.

The connection process depends on the transport protocol being used.

TCP for HTTP/1.1 and HTTP/2

For TCP-based connections, a TCP connection is generally established first. This process is known as the TCP Three-Way Handshake.

The simplified steps are:

  1. SYN: The client sends a request to start a connection.

  2. SYN-ACK: The server responds to the request.

  3. ACK: The client sends the final acknowledgment, and the connection is established.

If the website uses HTTPS, the TLS security setup is performed after the TCP connection is established.

Does Every Website Use TCP?

No. HTTP/3 uses QUIC over UDP, and its connection process differs from TCP. Therefore, the exact connection steps depend on the HTTP version and transport protocol.


5. How Do HTTPS and TLS Protect Communication?

When a website uses HTTPS, the browser establishes a secure TLS connection.

TLS stands for Transport Layer Security. It is a protocol designed to provide security for network communication.

HTTPS is HTTP transported over a secure TLS connection.

What Does TLS Provide?

TLS is designed to provide important security properties, including:

  • Encryption: Protecting the confidentiality of data in transit.

  • Server Authentication: Helping verify the identity of a server through certificates and trust chains.

  • Data Integrity: Helping detect unauthorized changes to transmitted data.

What Is a TLS Handshake?

During a TLS handshake, the client and server exchange information needed to establish a secure connection.

In TLS 1.3, the handshake includes messages used to negotiate security parameters, authenticate the server, and establish cryptographic keys.

After the secure connection is established, HTTP data can be transmitted through the TLS-protected channel.

Important: HTTPS does not automatically mean that every part of a website or its content is trustworthy. HTTPS protects communication, while application security and content reliability are separate concerns.


6. The Browser Sends an HTTP Request

Once the connection is ready, the browser sends an HTTP request to retrieve the requested resource.

For example:

GET / HTTP/1.1
Host: just-programmer.ir
Accept: text/html

This is a simplified example of an HTTP request. A real request may contain additional headers, and its structure depends on the HTTP version and browser conditions.

Main Parts of an HTTP Request

  • Method: The requested operation, such as GET or POST.

  • Path: The resource path on the server.

  • Headers: Additional information about the request.

  • Body: Request data, when needed.

GET is commonly used to retrieve resources, while POST can be used to send data to a server.


7. How Does the Server Process the Request?

After the request reaches the server, the web server or relevant infrastructure receives and processes it.

Depending on the website architecture, the following steps may occur:

  1. The request is received by a web server or reverse proxy.

  2. The route and request method are evaluated.

  3. The request is forwarded to a backend application if necessary.

  4. The application logic is executed.

  5. Data is retrieved from a database or other services if needed.

  6. An HTTP response is generated.

  7. The response is sent back to the client.

For example, a website built with Flask may receive requests through a web server or WSGI server before the request reaches the Flask application.

A simple Flask example:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def home():
    return "<h1>Hello from Flask!</h1>"

When a request reaches the / route, the home() function is executed and its response is returned to the client.

Real-world applications may include additional layers such as authentication, databases, middleware, and reverse proxies.


8. What Is an HTTP Response?

After processing the request, the server sends an HTTP response.

A simplified HTTP response might look like this:

HTTP/1.1 200 OK
Content-Type: text/html

<h1>Hello World!</h1>

Main Parts of a Response

  • Status Code: The result of processing the request.

  • Response Headers: Information about the response.

  • Response Body: The content returned to the client.

Common HTTP Status Codes

Code Meaning
200 The request was processed successfully.
301 Permanent redirect.
302 Temporary redirect.
404 The requested resource was not found.
500 Internal server error.

HTTP status codes are divided into different categories, including 1xx, 2xx, 3xx, 4xx, and 5xx.


9. The Browser Receives HTML, CSS, and JavaScript

The initial website response often contains HTML. The browser processes the HTML and may send additional requests for other required resources.

For example:

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="/static/style.css">
</head>
<body>
    <h1>Hello World</h1>

    <script src="/static/app.js"></script>
</body>
</html>

In this example:

  • CSS is used to style the page.

  • JavaScript is used to add interactive behavior.

  • HTML defines the main page structure.

The browser may send additional HTTP requests to retrieve these resources.

Resources may include:

  • CSS files.

  • JavaScript files.

  • Images.

  • Fonts.

  • Videos.

  • Application data.

The loading and prioritization of resources depend on the HTML elements, their attributes, and browser behavior.


10. How Does the Browser Turn HTML and CSS into a Webpage?

After receiving the resources, the browser needs to process them so that the page can be displayed.

This process involves several important stages.

HTML Parsing

The browser parses HTML and builds a DOM representation.

CSS Parsing

CSS files are processed, and style information is organized into internal structures.

Style Calculation

The browser determines which styles apply to each element.

Layout

The browser calculates the size and position of elements.

Paint

The visual content of elements is prepared for drawing.

Compositing

When needed, different layers are combined for final presentation.

These stages are simplified, and the exact implementation can vary between browsers.


11. When Does JavaScript Execute?

JavaScript can execute at different stages of page loading and interaction.

For example:

<script src="app.js"></script>

The execution behavior depends on attributes such as defer and async, the script's location, and the document's loading state.

The defer Attribute

<script src="app.js" defer></script>

A script with defer can be downloaded without blocking HTML parsing and generally executes after HTML parsing is complete, following the rules for deferred scripts.

The async Attribute

<script src="app.js" async></script>

A script with async can execute after it has been downloaded, independently of whether HTML parsing has finished. The execution order of multiple async scripts is not guaranteed.

The choice between defer and async depends on the script's dependencies and the needs of the application.


12. What Is Browser Cache and Why Does It Matter?

Browsers can store certain resources in a cache to reduce unnecessary requests and improve loading performance.

Cached resources may include:

  • CSS files.

  • JavaScript files.

  • Images.

  • Fonts.

  • Cacheable HTTP responses.

If a resource is available in the cache and the caching rules allow it to be reused, the browser may use the stored version instead of downloading it again.

Benefits of Caching

  • Reduced resource loading time.

  • Lower bandwidth usage.

  • Fewer network requests.

  • Improved user experience.

Caching does not always mean that a stored resource can be used without checking. HTTP headers and validation rules determine how the browser handles cached resources.


13. Does a CDN Help Load Websites?

CDN stands for Content Delivery Network. It is a network of servers distributed across different geographical locations.

A website may use a CDN to deliver static resources such as images, CSS, and JavaScript files.

When a user requests a resource, a CDN may serve it from an appropriate location if the resource is available in its cache.

Potential Benefits of a CDN

  • Reducing network distance between users and resources.

  • Improving delivery time for certain files.

  • Reducing load on the origin server.

  • Increasing the capacity for delivering cached content.

A CDN does not necessarily serve every request from its cache. Its behavior depends on configuration, user location, resource type, and network conditions.


14. Why Do Some Websites Load Faster Than Others?

Website loading speed depends on many different factors.

Important factors include:

  • The user's internet connection.

  • DNS resolution time.

  • Network distance to the server.

  • Connection establishment time.

  • Backend processing time.

  • Database performance.

  • The size of HTML, CSS, and JavaScript files.

  • The number of network requests.

  • Cache and CDN usage.

  • Browser and device performance.

For example, if a website's backend takes a long time to retrieve data from a database, the HTTP response may take longer to become available.

Even if the server responds quickly, large files or expensive JavaScript operations can delay page rendering and interaction.

For this reason, website performance optimization is not limited to making the server faster.


15. Conclusion

When we enter a website address into a browser, a multi-step process begins behind the scenes.

First, the browser parses the URL and, when necessary, uses DNS to resolve information about the destination. Depending on the protocol, a network connection and secure TLS communication are established.

The browser then sends an HTTP request to the server. The server processes the request and returns a response.

The browser receives and processes resources such as HTML, CSS, and JavaScript, and eventually renders the webpage for the user.

From entering a simple URL to displaying a complete website, networking, server infrastructure, browser technology, and programming all work together.

Understanding this process helps developers troubleshoot website issues, improve application performance, and gain a deeper understanding of how the web works.


Frequently Asked Questions (FAQ)

What is DNS?

DNS, or Domain Name System, is a system used to resolve domain names into information needed to locate a network destination, including IP addresses.

What is the difference between HTTP and HTTPS?

HTTPS is HTTP transported over a secure TLS connection. TLS is designed to provide confidentiality, data integrity, and server authentication.

Does every browser connection use TCP?

No. HTTP/1.1 and HTTP/2 are commonly used over TCP, while HTTP/3 uses QUIC over UDP.

Why do websites need DNS?

DNS allows users to use readable domain names instead of having to remember network addresses.

How does a CDN help a website?

A CDN can deliver content from distributed network locations, potentially reducing delivery time for certain resources and lowering load on the origin server. Its performance depends on the content and configuration.


© Just Programmer | Learn • Build • Grow

وقتی آدرس یک سایت را وارد می‌کنیم، پشت صحنه چه اتفاقی می‌افتد؟

دسته‌بندی: Web Development | Networking | Backend

نویسنده: Just Programmer


مقدمه

آیا تا به حال به این فکر کرده‌اید که وقتی آدرس یک سایت مانند https://just-programmer.ir را در مرورگر وارد می‌کنید و کلید Enter را می‌زنید، دقیقاً چه اتفاقی رخ می‌دهد؟

در ظاهر، تنها کاری که انجام می‌دهیم واردکردن یک آدرس و مشاهده یک صفحه وب است. اما در پشت صحنه، مرورگر با سیستم DNS، شبکه، سرور وب و موتور رندر خود ارتباط برقرار می‌کند تا اطلاعات سایت را دریافت کرده و آن را به یک صفحه قابل مشاهده تبدیل کند.

از پیدا کردن آدرس IP سرور گرفته تا ایجاد اتصال امن، ارسال درخواست HTTP، دریافت فایل‌های HTML و نمایش نهایی صفحه، مراحل مختلفی در این فرایند نقش دارند.

در این مقاله از Just Programmer، قدم‌به‌قدم بررسی می‌کنیم که هنگام ورود به یک سایت چه اتفاقی می‌افتد و مرورگر چگونه یک آدرس اینترنتی را به یک صفحه وب تبدیل می‌کند.


۱. واردکردن آدرس سایت در مرورگر

اولین مرحله زمانی آغاز می‌شود که کاربر آدرس یک سایت را در نوار آدرس مرورگر وارد می‌کند.

برای مثال:

https://just-programmer.ir

این آدرس از بخش‌های مختلفی تشکیل شده است:

  • HTTPS: پروتکل مورد استفاده برای ارتباط امن.

  • just-programmer.ir: نام دامنه سایت.

  • Path: مسیر یک منبع خاص در سایت، در صورت وجود.

  • Query Parameters: پارامترهای اضافی در URL، در صورت وجود.

مرورگر URL را تجزیه و تحلیل می‌کند تا مشخص شود به چه منبعی باید دسترسی پیدا کند و چه نوع ارتباطی لازم است.

اگر آدرس شامل مسیر خاصی باشد، مانند:

https://just-programmer.ir/articles

مرورگر علاوه بر دامنه، مسیر /articles را نیز در درخواست مربوطه در نظر می‌گیرد.


۲. DNS چیست و چگونه دامنه را به IP تبدیل می‌کند؟

کامپیوترها برای برقراری ارتباط شبکه‌ای با سرورها از آدرس‌های IP استفاده می‌کنند. اما به خاطر سپردن آدرس IP برای انسان‌ها دشوار است؛ به همین دلیل از نام دامنه استفاده می‌کنیم.

برای مثال، به‌جای واردکردن یک آدرس IP، می‌نویسیم:

just-programmer.ir

اینجا DNS وارد عمل می‌شود.

DNS مخفف Domain Name System است و وظیفه آن فراهم‌کردن سازوکاری برای تبدیل نام دامنه به اطلاعات مورد نیاز برای پیدا کردن مقصد شبکه، از جمله آدرس IP، است.

مراحل ساده DNS Lookup

وقتی مرورگر به آدرس IP نیاز داشته باشد، سیستم معمولاً مراحل زیر را طی می‌کند:

  1. بررسی حافظه کش مرورگر.

  2. بررسی کش سیستم‌عامل یا Resolverهای محلی.

  3. ارسال درخواست به DNS Resolver در صورت نیاز.

  4. Resolver بررسی اطلاعات کش‌شده یا پرس‌وجو از سرورهای DNS.

  5. دریافت پاسخ مربوط به دامنه.

  6. استفاده از اطلاعات پاسخ برای برقراری ارتباط با مقصد.

در عمل، همه درخواست‌ها لزوماً تمام این مراحل را طی نمی‌کنند؛ زیرا اطلاعات DNS ممکن است قبلاً در کش ذخیره شده باشد.

مثال

Domain:
just-programmer.ir

DNS:
Domain → IP Address

نکته مهم این است که یک دامنه می‌تواند به یک یا چند آدرس IP اشاره کند و پاسخ DNS همیشه یک IP ثابت و واحد نیست.


۳. آدرس IP چیست و چرا به آن نیاز داریم؟

IP Address یا آدرس پروتکل اینترنت، یک شناسه شبکه‌ای برای شناسایی مقصد در شبکه است.

دو نسخه اصلی IP عبارت‌اند از:

  • IPv4: مانند 192.168.1.1

  • IPv6: مانند 2001:db8::1

هنگامی که مرورگر اطلاعات لازم برای پیدا کردن مقصد را به دست می‌آورد، می‌تواند برای ایجاد ارتباط با سرور اقدام کند.

بااین‌حال، DNS تنها وظیفه پیدا کردن آدرس مقصد را دارد و خودش مسئول انتقال محتوای صفحه وب نیست.


۴. ایجاد اتصال با سرور

پس از مشخص‌شدن مقصد، مرورگر باید ارتباط مناسبی با سرور برقرار کند.

نحوه ایجاد اتصال به پروتکل انتقال مورد استفاده بستگی دارد.

در HTTP/1.1 و HTTP/2 روی TCP

در ارتباط‌های مبتنی بر TCP، معمولاً ابتدا اتصال TCP برقرار می‌شود. این فرایند با TCP Three-Way Handshake شناخته می‌شود.

مراحل ساده آن:

  1. SYN: کلاینت درخواست شروع اتصال را ارسال می‌کند.

  2. SYN-ACK: سرور درخواست را دریافت کرده و پاسخ می‌دهد.

  3. ACK: کلاینت پاسخ نهایی را ارسال می‌کند و اتصال برقرار می‌شود.

بعد از ایجاد اتصال TCP، اگر سایت از HTTPS استفاده کند، مراحل برقراری امنیت TLS انجام می‌شود.

آیا همه سایت‌ها از TCP استفاده می‌کنند؟

خیر. در HTTP/3، پروتکل QUIC روی UDP استفاده می‌شود و سازوکار ایجاد اتصال آن با TCP متفاوت است. بنابراین، روند دقیق اتصال به نسخه HTTP و پروتکل انتقال بستگی دارد.


۵. HTTPS و TLS چگونه از ارتباط محافظت می‌کنند؟

اگر آدرس سایت با HTTPS شروع شود، مرورگر باید ارتباط امن TLS را برقرار کند.

TLS مخفف Transport Layer Security است و پروتکلی برای ایجاد ارتباط امن در شبکه محسوب می‌شود.

HTTPS در واقع استفاده از HTTP روی یک ارتباط امن TLS است.

TLS چه کارهایی انجام می‌دهد؟

TLS به فراهم‌کردن ویژگی‌های مهم زیر کمک می‌کند:

  • رمزنگاری: محافظت از محرمانگی داده‌ها در مسیر انتقال.

  • احراز هویت سرور: بررسی هویت سرور از طریق گواهی و زنجیره اعتماد.

  • تمامیت داده: کمک به تشخیص تغییرات غیرمجاز در داده‌های انتقال‌یافته.

TLS Handshake چیست؟

در طول برقراری ارتباط TLS، کلاینت و سرور اطلاعات لازم را برای ایجاد ارتباط امن مذاکره می‌کنند.

در TLS 1.3، فرایند Handshake شامل پیام‌هایی برای توافق روی پارامترهای امنیتی، احراز هویت سرور و ایجاد کلیدهای رمزنگاری است.

پس از برقراری ارتباط امن، داده‌های HTTP می‌توانند از طریق کانال TLS منتقل شوند.

نکته: وجود HTTPS به‌تنهایی به این معنا نیست که همه محتوای یک سایت قابل اعتماد است. HTTPS از ارتباط محافظت می‌کند، اما امنیت خود برنامه و محتوای آن موضوع جداگانه‌ای است.


۶. مرورگر درخواست HTTP را ارسال می‌کند

پس از آماده‌شدن ارتباط، مرورگر درخواست HTTP را برای دریافت منبع موردنظر ارسال می‌کند.

برای مثال:

GET / HTTP/1.1
Host: just-programmer.ir
Accept: text/html

این نمونه، شکل ساده‌شده یک درخواست HTTP است. درخواست واقعی می‌تواند Headerهای بیشتری داشته باشد و ساختار آن به نسخه HTTP و شرایط مرورگر بستگی دارد.

بخش‌های اصلی درخواست HTTP

  • Method: نوع عملیات مانند GET یا POST.

  • Path: مسیر منبع در سرور.

  • Headers: اطلاعات اضافی مربوط به درخواست.

  • Body: داده‌های درخواست، در صورت نیاز.

درخواست GET معمولاً برای دریافت منابع استفاده می‌شود. در مقابل، درخواست POST می‌تواند برای ارسال داده به سرور مورد استفاده قرار گیرد.


۷. سرور چگونه درخواست را پردازش می‌کند؟

پس از رسیدن درخواست به سرور، نرم‌افزار وب یا زیرساخت مربوطه آن را دریافت و پردازش می‌کند.

بسته به معماری سایت، ممکن است مراحل زیر اتفاق بیفتد:

  1. دریافت درخواست توسط وب‌سرور یا Reverse Proxy.

  2. بررسی مسیر و روش درخواست.

  3. ارسال درخواست به برنامه Backend در صورت نیاز.

  4. پردازش منطق برنامه.

  5. دریافت داده از دیتابیس یا سرویس‌های دیگر، در صورت نیاز.

  6. ساخت پاسخ HTTP.

  7. ارسال پاسخ به کلاینت.

برای مثال، اگر سایتی با Flask ساخته شده باشد، درخواست ممکن است از وب‌سرور یا WSGI Server به برنامه Flask برسد.

نمونه ساده در Flask:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def home():
    return "<h1>Hello from Flask!</h1>"

وقتی درخواست به مسیر / برسد، تابع home() اجرا می‌شود و پاسخ مربوطه به کلاینت برمی‌گردد.

در پروژه‌های واقعی، معمولاً لایه‌های دیگری مانند احراز هویت، دیتابیس، Middleware و Reverse Proxy نیز وجود دارند.


۸. HTTP Response چیست؟

سرور پس از پردازش درخواست، یک پاسخ HTTP ارسال می‌کند.

یک پاسخ ساده HTTP می‌تواند به شکل زیر باشد:

HTTP/1.1 200 OK
Content-Type: text/html

<h1>Hello World!</h1>

اجزای اصلی پاسخ

  • Status Code: نتیجه پردازش درخواست.

  • Response Headers: اطلاعات مربوط به پاسخ.

  • Response Body: محتوای ارسال‌شده به کلاینت.

کدهای وضعیت معروف HTTP

کد مفهوم
200 درخواست با موفقیت پردازش شده است.
301 انتقال دائمی به آدرس دیگر.
302 انتقال موقت.
404 منبع موردنظر پیدا نشد.
500 خطای داخلی سرور.

کدهای وضعیت HTTP فقط به موارد بالا محدود نیستند و دسته‌های مختلفی مانند 1xx، 2xx، 3xx، 4xx و 5xx دارند.


۹. مرورگر فایل‌های HTML، CSS و JavaScript را دریافت می‌کند

پاسخ اولیه سایت معمولاً شامل HTML است. مرورگر HTML را پردازش می‌کند و در صورت وجود منابع دیگر، درخواست‌های موردنیاز را نیز ارسال می‌کند.

برای مثال، یک فایل HTML ممکن است شامل موارد زیر باشد:

<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="/static/style.css">
</head>
<body>
    <h1>Hello World</h1>

    <script src="/static/app.js"></script>
</body>
</html>

در این نمونه:

  • فایل CSS برای استایل صفحه استفاده می‌شود.

  • فایل JavaScript برای اجرای رفتارهای تعاملی بارگذاری می‌شود.

  • HTML ساختار اصلی صفحه را تعریف می‌کند.

مرورگر می‌تواند برای دریافت این منابع درخواست‌های HTTP دیگری ارسال کند.

منابع ممکن است شامل موارد زیر باشند:

  • فایل‌های CSS

  • فایل‌های JavaScript

  • تصاویر

  • فونت‌ها

  • فایل‌های ویدئویی

  • داده‌های موردنیاز برنامه

نحوه بارگذاری و اولویت‌بندی منابع به نوع عنصر HTML، ویژگی‌های آن و رفتار مرورگر بستگی دارد.


۱۰. مرورگر چگونه HTML و CSS را به صفحه تبدیل می‌کند؟

بعد از دریافت منابع، مرورگر باید آن‌ها را پردازش کند تا صفحه قابل مشاهده شود.

این فرایند شامل چند بخش مهم است:

HTML Parsing

مرورگر HTML را تجزیه می‌کند و ساختار DOM را می‌سازد.

CSS Parsing

فایل‌های CSS پردازش می‌شوند و اطلاعات مربوط به سبک‌ها در ساختارهای داخلی مرورگر قرار می‌گیرند.

Style Calculation

مرورگر مشخص می‌کند که هر عنصر چه سبک‌هایی دریافت می‌کند.

Layout

اندازه و موقعیت عناصر صفحه محاسبه می‌شود.

Paint

محتوای قابل مشاهده عناصر برای رسم آماده می‌شود.

Compositing

در صورت نیاز، لایه‌های مختلف برای نمایش نهایی ترکیب می‌شوند.

این مراحل به‌صورت ساده‌شده بیان شده‌اند و پیاده‌سازی دقیق آن‌ها در مرورگرها می‌تواند متفاوت باشد.


۱۱. JavaScript چه زمانی اجرا می‌شود؟

JavaScript می‌تواند در مراحل مختلف بارگذاری و تعامل با صفحه اجرا شود.

برای مثال:

<script src="app.js"></script>

نحوه اجرای اسکریپت به ویژگی‌هایی مانند defer، async، محل قرارگیری اسکریپت و وضعیت پردازش سند بستگی دارد.

ویژگی defer

<script src="app.js" defer></script>

اسکریپت با defer معمولاً به‌صورت غیرمسدودکننده در هنگام دریافت بارگذاری می‌شود و پس از پردازش HTML، طبق قواعد اجرای اسکریپت‌های defer اجرا می‌شود.

ویژگی async

<script src="app.js" async></script>

اسکریپت با async می‌تواند پس از دریافت، مستقل از تکمیل پردازش HTML اجرا شود. ترتیب اجرای چند اسکریپت async تضمین‌شده نیست.

انتخاب بین defer و async به نوع وابستگی‌ها و نیازهای برنامه بستگی دارد.


۱۲. Browser Cache چیست و چرا اهمیت دارد؟

مرورگر برای کاهش درخواست‌های غیرضروری و بهبود سرعت بارگذاری می‌تواند برخی منابع را در Cache ذخیره کند.

این منابع ممکن است شامل موارد زیر باشند:

  • فایل‌های CSS

  • فایل‌های JavaScript

  • تصاویر

  • فونت‌ها

  • پاسخ‌های HTTP قابل کش‌شدن

اگر منبعی در کش موجود باشد و قوانین کش اجازه استفاده از آن را بدهند، مرورگر ممکن است بدون دریافت مجدد از شبکه از نسخه ذخیره‌شده استفاده کند.

مزایای Cache

  • کاهش زمان بارگذاری منابع.

  • کاهش مصرف پهنای باند.

  • کاهش تعداد درخواست‌های شبکه.

  • بهبود تجربه کاربری.

البته کش همیشه به معنای استفاده بدون بررسی از نسخه قبلی نیست. Headerهای HTTP و قوانین اعتبارسنجی تعیین می‌کنند که مرورگر چگونه از منابع ذخیره‌شده استفاده کند.


۱۳. آیا CDN در بارگذاری سایت نقش دارد؟

CDN مخفف Content Delivery Network است و شبکه‌ای از سرورها در نقاط مختلف جغرافیایی محسوب می‌شود.

یک سایت ممکن است از CDN برای ارائه فایل‌های ایستا مانند تصاویر، CSS و JavaScript استفاده کند.

وقتی کاربر درخواست یک منبع را ارسال می‌کند، CDN می‌تواند در صورت وجود منبع در کش خود، آن را از یک نقطه مناسب‌تر ارائه دهد.

مزایای احتمالی CDN

  • کاهش فاصله شبکه‌ای بین کاربر و منبع.

  • بهبود زمان تحویل برخی فایل‌ها.

  • کاهش بار روی سرور اصلی.

  • افزایش ظرفیت ارائه محتوای کش‌شده.

CDN همیشه همه درخواست‌ها را از کش پاسخ نمی‌دهد و عملکرد آن به تنظیمات، محل کاربر، نوع محتوا و وضعیت شبکه بستگی دارد.


۱۴. چرا بعضی سایت‌ها سریع‌تر از سایت‌های دیگر باز می‌شوند؟

سرعت بارگذاری یک سایت به عوامل مختلفی وابسته است.

برخی از عوامل مهم عبارت‌اند از:

  • کیفیت اتصال اینترنت کاربر.

  • زمان پاسخ DNS.

  • فاصله شبکه‌ای تا سرور.

  • زمان برقراری اتصال.

  • زمان پردازش Backend.

  • سرعت دیتابیس.

  • اندازه فایل‌های HTML، CSS و JavaScript.

  • تعداد درخواست‌های شبکه.

  • استفاده از Cache و CDN.

  • عملکرد مرورگر و دستگاه کاربر.

برای مثال، اگر Backend یک سایت برای دریافت اطلاعات از دیتابیس زمان زیادی صرف کند، پاسخ HTTP ممکن است دیرتر آماده شود.

همچنین، حتی اگر سرور سریع پاسخ دهد، فایل‌های حجیم یا اجرای سنگین JavaScript می‌توانند نمایش و تعامل صفحه را به تأخیر بیندازند.

به همین دلیل، بهینه‌سازی عملکرد سایت فقط به افزایش سرعت سرور محدود نمی‌شود.


۱۵. جمع‌بندی

وقتی آدرس یک سایت را در مرورگر وارد می‌کنیم، فرایندی چندمرحله‌ای در پشت صحنه آغاز می‌شود.

ابتدا مرورگر URL را پردازش می‌کند و در صورت نیاز از DNS برای پیدا کردن اطلاعات مقصد استفاده می‌کند. سپس بسته به پروتکل مورد استفاده، اتصال شبکه و ارتباط امن TLS برقرار می‌شود.

پس از آن، مرورگر درخواست HTTP را به سرور ارسال می‌کند. سرور درخواست را پردازش کرده و پاسخ مربوطه را برمی‌گرداند.

مرورگر منابعی مانند HTML، CSS و JavaScript را دریافت و پردازش می‌کند و در نهایت صفحه را برای کاربر نمایش می‌دهد.

از واردکردن یک آدرس ساده تا نمایش کامل یک سایت، مجموعه‌ای از فناوری‌های شبکه، سرور، مرورگر و برنامه‌نویسی در کنار یکدیگر کار می‌کنند.

شناخت این فرایند به توسعه‌دهندگان کمک می‌کند مشکلات سایت را بهتر بررسی کنند، عملکرد برنامه را بهبود دهند و درک عمیق‌تری از دنیای وب به دست آورند.


سوالات متداول | FAQ

DNS چیست؟

DNS یا Domain Name System سیستمی است که برای پیدا کردن اطلاعات مربوط به نام دامنه، از جمله آدرس IP، استفاده می‌شود.

تفاوت HTTP و HTTPS چیست؟

HTTPS استفاده از HTTP روی یک ارتباط امن TLS است. TLS برای فراهم‌کردن محرمانگی، تمامیت داده و احراز هویت سرور در ارتباط طراحی شده است.

آیا مرورگر همیشه از TCP استفاده می‌کند؟

خیر. HTTP/1.1 و HTTP/2 معمولاً روی TCP استفاده می‌شوند، اما HTTP/3 از QUIC روی UDP استفاده می‌کند.

چرا سایت‌ها به DNS نیاز دارند؟

DNS به کاربران اجازه می‌دهد به‌جای به خاطر سپردن آدرس‌های شبکه، از نام‌های دامنه قابل خواندن استفاده کنند.

CDN چه کمکی به سایت می‌کند؟

CDN می‌تواند با ارائه محتوا از نقاط مختلف شبکه، زمان تحویل برخی منابع و بار سرور اصلی را کاهش دهد؛ عملکرد آن به نوع محتوا و تنظیمات شبکه بستگی دارد.


© Just Programmer | Learn • Build • Grow

Back to Articles