در دنیای شبکه و اینترنت، HTTP یکی از اصلیترین پروتکلها برای تبادل دادهها بین کلاینتها و سرورهاست. دانستن اینکه چطور پیامهای HTTP بین مرورگرها (یا هر کلاینت دیگری) و سرورها تبادل میشوند، به شما کمک میکند تا برنامههای تحت وب بهتری بسازید. در این مقاله با ارائه مثالهایی از تبادل پیامهای HTTP بر اساس سند RFC 9110 آشنا خواهیم شد.
به زبان ساده، هر بار که شما وبسایتی را در مرورگر خود باز میکنید، پیامهایی بین کلاینت و سرور رد و بدل میشوند. این پیامها به شکل درخواست (Request) و پاسخ (Response) هستند. درک این تعاملات، برای توسعهدهندگان و کسانی که با وب و سرورها سر و کار دارند، بسیار ارزشمند است.
هر درخواست HTTP شامل یک روش (مثل GET یا POST)، یک مسیر (Path)، و گاهی دادهها یا پارامترهایی در بین بدنه پیام است. در طرف دیگر، پاسخها دارای وضعیت (مانند 200 برای موفقیت یا 404 برای پیدا نشدن)، هدرها، و معمولاً یک بدنه محتویات هستند که ممکن است شامل HTML، JSON و یا انواع دیگر داده باشد.
RFC 9110، که یکی از مجموعه استانداردهای HTTP است، به توضیح ساختار و نحوه تبادل این پیامها میپردازد. با دانستن این اصول و تبادل مثالهای عملی، درک بهتری نسبت به نحوه عملکرد پروتکل HTTP و بهینهسازی ارتباطات وب خواهید داشت.
حالا بیایید با یک مثال عملی از یک پیام HTTP در چارچوب RFC 9110 آشنا شویم:
GET /index.html HTTP/1.1
Host: www.example.com
Accept-Language: en
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
<html>
<head>
<title>مثال HTTP</title>
</head>
<body>
<p>این یک مثال ساده است.</p>
</body>
</html>
بررسی کد مثال
GET /index.html HTTP/1.1
این سطر نشاندهنده یک درخواست GET برای دریافت صفحهای به نام index.html از سرور است.
Host: www.example.com
این خط میزبان (Host) را برای سرور مشخص میکند، که در اینجا به دامنه example.com اشاره دارد.
Accept-Language: en
این هدر مشخص میکند که زبان ترجیحی محتوا برای کلاینت انگلیسی است.
HTTP/1.1 200 OK
این پاسخ نشان میدهد که درخواست موفقیتآمیز بوده و سرور محتوای درخواستشده را ارسال میکند.
Content-Type: text/html
نوع محتوایی که سرور ارسال کرده است، به صورت متنی HTML تعریف شده است.
Content-Length: 1234
این هدر تعداد بایتهایی که محتوای HTML اشغال میکند را مشخص میکند.
<html>...</html>
این بخش شامل محتوای HTML است که مرورگر آن را برای نمایش صفحه پردازش میکند.