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

یک درخواست را بخوانیم

در HTTP/1.1، خط اول متد و مسیر را نشان می‌دهد. GET برای دریافت یک منبع است. هدر Host مقصد و Accept نوع پاسخ مورد انتظار را مشخص می‌کنند. این مثال، شکل متنی یک درخواست است؛ دستور قابل اجرای ترمینال نیست.

GET /api/lessons HTTP/1.1
Host: example.test
Accept: application/json

پاسخ چه می‌گوید؟

وضعیت 200 یعنی درخواست موفق بوده، 404 یعنی منبع پیدا نشده و 500 از خطای سمت سرور خبر می‌دهد. Content-Type نوع محتوا را مشخص می‌کند. پاسخ می‌تواند HTML، JSON یا نوع دیگری از داده باشد.

HTTP/1.1 200 OK
Content-Type: application/json

{"lessons": ["HTTP", "Python"]}

تمرین در همین مرورگر

ابزار توسعه مرورگر را باز کنید، وارد Network شوید و صفحه را دوباره بارگذاری کنید. درخواست سند اصلی را انتخاب کنید و متد، وضعیت و Content-Type را پیدا کنید. سپس یک فایل CSS را بررسی کنید؛ نوع محتوای آن با سند اصلی چه تفاوتی دارد؟

تمرین

کدام کد معمولاً نشان می‌دهد منبع پیدا نشده است؟

  • 200
  • 404
  • 500
404 به معنی پیدا نشدن منبع درخواست‌شده است.

MDN — HTTP Overview ↗