پروتکل HTTP بر پایهی مدل درخواست-پاسخ (Request-Response) کار میکند. این یعنی هر زمان که یک کلاینت (مانند مرورگر) درخواستی به سرور ارسال کند، سرور آن را پردازش کرده و پاسخی برمیگرداند.
ساختار بستهی HTTP Request (درخواست HTTP)
وقتی شما یک صفحه وب را باز میکنید یا روی لینکی کلیک میکنید، مرورگر شما یک درخواست (Request) به سرور ارسال میکند تا اطلاعات موردنیاز را دریافت کند. درخواست میتواند شامل اطلاعات بیشتری مثل هدرها (Headers) و بدنه (Body) باشد، مخصوصاً در متدهایی مثل POST
که داده ارسال میشود.
هر درخواست HTTP از چند بخش تشکیل شده است:
خط درخواست (Request Line) → شامل متد، مسیر و نسخه HTTP
هدرهای درخواست (Headers) → شامل اطلاعات اضافی دربارهی درخواست
بدنه درخواست (Body) → فقط در متدهایی مثل POST
و PUT
مثال بستهی درخواست HTTP در سطح شبکه:
GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
در داخل بستهی شبکه (Packet) چگونه نمایش داده میشود؟
یک بستهی TCP که حاوی این درخواست است، شامل این بخشها خواهد بود:
+----------------------+
| TCP Header | (شامل اطلاعات ارتباطی مانند پورتها)
+----------------------+
| HTTP Request Header | (مثلاً Host, User-Agent, Accept)
+----------------------+
| HTTP Request Body | (اگر دادهای ارسال شده باشد)
+----------------------+
ساختار بستهی HTTP Response (پاسخ HTTP)
هر پاسخ HTTP شامل موارد زیر است:
خط وضعیت (Status Line) → شامل نسخه HTTP، کد وضعیت و توضیح
هدرهای پاسخ (Headers) → شامل اطلاعات اضافی دربارهی دادهی ارسالی
بدنه پاسخ (Body) → شامل محتوای صفحه یا دادههای موردنیاز
مثال بستهی پاسخ HTTP در سطح شبکه:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 125
<html>
<body>
<h1>Welcome to Example.com</h1>
</body>
</html>
در داخل بستهی شبکه (Packet) چگونه نمایش داده میشود؟
+----------------------+
| TCP Header | (حاوی اطلاعات پورت و کنترل ارتباط)
+----------------------+
| HTTP Response Header| (مثلاً Content-Type, Content-Length)
+----------------------+
| HTTP Response Body | (مثلاً کد HTML یا JSON)
+----------------------+
فرمتهای معمول پاسخ HTTP
- HTML: نمایش صفحات وب
- JSON: استفاده در APIها برای ارسال داده
- Text: ارسال متن ساده
- XML: قالب قدیمی برای دادهها
- Images & Videos: ارسال فایلهای رسانهای