HTTP چیست ؟

HTTP
یا Hypertext Transfer Protocol، پروتکلی برای انتقال دادهها در وب است که مرورگرها و سرورها از آن برای ارتباط و ارسال اطلاعات استفاده میکنند. HTTP
پایه و اساس عملکرد وب است و در بسیاری از وبسایتها و برنامههای تحت وب به کار میرود.
ویژگیهای اصلی HTTP
متنباز و بدون وضعیت: پروتکل HTTP به صورت متنباز عمل میکند و نیازی به حفظ وضعیت ندارد. یعنی هر درخواست و پاسخ جداگانه انجام میشود و پس از ارسال پاسخ، اتصال قطع میشود.
درخواستها و پاسخها: در HTTP، مرورگر (یا کلاینت) درخواستهایی را به سرور ارسال میکند و سرور پاسخی به آن درخواست میدهد. این درخواستها میتوانند شامل دستورات مختلف مانند
GET
،POST
،PUT
وDELETE
باشند.پورتهای پیشفرض: به صورت پیشفرض، HTTP از پورت 80 استفاده میکند. در HTTP امن یا
HTTPS
، پورت 443 بهکار میرود.ساختار URL: URL یا آدرس وب برای دسترسی به یک منبع از قوانین خاصی پیروی میکند که شامل پروتکل (
http://
یاhttps://
)، دامنه و مسیر منابع است.نسخهها: پروتکل HTTP نسخههای مختلفی دارد، از جمله:
- HTTP/1.0: اولین نسخه عمومی با ویژگیهای پایه مانند GET و POST.
- HTTP/1.1: نسخهای با بهبودهای مهم مثل استفاده از Keep-Alive.
- HTTP/2: سرعت و عملکرد بهبود یافته با امکان ارسال همزمان چندین درخواست.
- HTTP/3: استفاده از پروتکل QUIC که سرعت و امنیت را ارتقا داده است.
HTTP امن (HTTPS)
HTTPS
نسخه امن HTTP است که از پروتکل SSL/TLS
برای رمزنگاری اطلاعات استفاده میکند تا امنیت تبادل دادهها بین کاربر و سرور را تضمین کند.
ساختار درخواست HTTP
یک درخواست HTTP شامل موارد زیر است:
- خط درخواست (Request Line): شامل متد، URL و نسخه پروتکل.
- سربرگها (Headers): شامل اطلاعات اضافی مثل نوع محتوا و احراز هویت.
- بدنه (Body): اطلاعاتی که با متدهایی مثل POST ارسال میشود.
ساختار پاسخ HTTP
پاسخ HTTP شامل موارد زیر است:
- خط وضعیت (Status Line): شامل نسخه HTTP، کد وضعیت و توضیحات کد وضعیت.
- سربرگها: اطلاعات اضافی مثل نوع محتوا و طول محتوا.
- بدنه: محتوای اصلی پاسخ که معمولاً HTML، JSON، یا فایلهای دیگر است.
کدهای وضعیت HTTP
کدهای وضعیت در HTTP نشاندهنده نتیجه درخواست هستند:
- 2xx (موفقیت): درخواست با موفقیت پردازش شده است، مثل 200 OK.
- 3xx (انتقال): درخواست باید به آدرسی دیگر هدایت شود، مثل 301 Moved Permanently.
- 4xx (خطای کاربر): درخواست مشکلی دارد، مثل 404 Not Found.
- 5xx (خطای سرور): سرور نتوانسته درخواست را پردازش کند، مثل 500 Internal Server Error.
HTTP به مرور زمان بهبود یافته و امنیت، سرعت، و کارایی بیشتری را برای وب فراهم کرده است.