برنامه نویسی

درک HTTP و HTTPS: مروری جامع – انجمن DEV

HTTP چیست؟
HTTP (پروتکل انتقال ابرمتن) یک پروتکل است — مجموعه ای از قوانین برای انتقال داده بین رایانه ها که به ما امکان می دهد منابعی مانند صفحات HTML را واکشی کنیم. این پایه و اساس شبکه جهانی وب است که به کاربران امکان می دهد صفحات وب را مرور کنند. داده ها بین یک کلاینت (معمولا یک مرورگر) و یک سرور رد و بدل می شود. مشتری یک درخواست ارسال می کند و سرور با داده های درخواستی پاسخ می دهد.

HTTPS چیست؟
HTTPS مخفف HyperText Transfer Protocol Secure است. HTTP را با رمزگذاری داده‌های ارسالی افزایش می‌دهد. این رمزگذاری اطلاعات حساس را از رهگیری توسط اشخاص غیرمجاز محافظت می کند.

HTTP چگونه کار می کند
ارتباط مشتری و سرور
یک کلاینت، که اغلب به عنوان یک عامل کاربر (مانند مرورگر یا برنامه وب) شناخته می شود، درخواستی برای منابعی مانند HTML، CSS، جاوا اسکریپت یا تصاویر ارسال می کند. هنگامی که یک پیوند کلیک می شود، مشتری درخواستی را به سرور آغاز می کند.

لایه های واسطه
بین کلاینت و سرور، لایه های واسطه ای وجود دارد که در مجموع به عنوان پراکسی شناخته می شوند. اینها می توانند کارهایی مانند ذخیره سازی، فیلتر کردن، متعادل کردن بار، احراز هویت و ثبت را انجام دهند.

بی تابعیتی HTTP
HTTP یک پروتکل بدون حالت است، به این معنی که پس از تکمیل تبادل داده، ارتباط بین مشتری و سرور قطع می شود. برای حفظ یک وضعیت (مثلاً حفظ یک کاربر به سیستم)، سرورها از کوکی ها استفاده می کنند.

پیام های HTTP: درخواست و پاسخ
نمودار زیر، از MDN، ساختار پیام های HTTP را نشان می دهد. در حالی که HTTP از طریق نسخه هایی مانند HTTP/1.1، HTTP/2، و HTTP/3 تکامل یافته است، اصول اساسی یکسان است. HTTP/1.1 اغلب قابل خواندن تر در نظر گرفته می شود، در حالی که نسخه های جدیدتر به ابزارهای تخصصی برای تفسیر ساختار باینری نیاز دارند.

توضیحات تصویر

درخواست HTTP
درخواست HTTP از سه بخش کلیدی تشکیل شده است: متد، هدر و بدنه.
روش: هدف از درخواست یا اقدامی که باید انجام شود
روش های رایج عبارتند از:
دریافت کنید: بازیابی داده ها
ارسال کنید: داده ها را برای پردازش ارسال کنید
قرار دادن: داده های موجود را به روز کنید
حذف کنید: حذف داده ها

روش های درخواست HTTP (MDN)

سربرگ (اختیاری): اطلاعات اضافی برای سرور، مانند فرمت های پشتیبانی شده، اعتبارنامه های احراز هویت یا کنترل های حافظه پنهان.

بدن (اختیاری): برای ارسال داده استفاده می شود

پاسخ HTTP
پاسخ HTTP از سه بخش کلیدی تشکیل شده است: هدر، بدنه و کد وضعیت.

سربرگ: زمینه دقیق تری از پاسخ، مانند سن، مکان یا جزئیات سرور را ارائه می دهد.

بدن (اختیاری): حاوی داده های واکشی شده یا منابع درخواستی است

کد وضعیت: نشان دهنده موفقیت یا عدم تکمیل درخواست و دلیل آن است

1XX – پاسخ های اطلاعاتی
2XX – پاسخ‌های موفق (مثلاً 200 OK)
3XX – پیام های تغییر مسیر
4XX – پاسخ های خطای مشتری
5XX – پاسخ به خطای سرور

به لیست کامل روش ها مراجعه کنید:
کدهای وضعیت پاسخ HTTP (MDN)

پروتکل های اساسی: TCP/IP
HTTP برای انتقال داده از طریق اینترنت به TCP/IP متکی است.
TCP (پروتکل کنترل انتقال) با شکستن داده ها به بسته های کوچک، انتقال آنها و مونتاژ مجدد آنها در مقصد، تحویل مطمئن داده ها را تضمین می کند.
IP (پروتکل اینترنت) آدرس دهی و مسیریابی را انجام می دهد تا اطمینان حاصل شود که داده ها به مقصد صحیح می رسند.

همانطور که TechTarget توضیح می دهد:

TCP/IP نحوه مبادله داده ها را از طریق اینترنت با ارائه ارتباطات سرتاسری که مشخص می کند چگونه باید به بسته ها، آدرس دهی، انتقال، مسیریابی و دریافت در مقصد تقسیم شوند، مشخص می کند.

TechTarget

HTTP Caching
کش HTTP با کاهش زمان بارگذاری و بار کاری سرور، عملکرد خود را بهبود می بخشد. دو نوع وجود دارد: کش خصوصی (به عنوان مثال کش مرورگر) و حافظه پنهان مشترک (مثلاً پروکسی ها و CDN). می توانید کش ها را با هدرهایی مانند:

Cache-Control: private
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با این حال، HTTP طوری طراحی شده است که تا حد ممکن بدون حتی ذخیره شود Cache-Control در حال ارائه است. به این می گویند ذخیره اکتشافی. برای جلوگیری از کش کردن، می توانید از موارد زیر استفاده کنید:

Cache-Control: no-store
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

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

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا