وقتی با استفاده از مرورگرها وارد سایتی میشوید، در ابتدای نوار آدرس عبارت http یا https را مشاهده کردهاید و یا نام اینها را کم و بیش شنیدهاید. در این مطلب قصد داریم هر دو http و https را بررسی کنیم و ببینیم تفاوت آنها چیست؟ و آیا باید به این تفاوت ها اهمیت بدهیم؟
در انتهای مطلب، قطعاً نکات حساسی در رابطه با این پروتکلها یاد میگیرید که در وبگردی، کدنویسی و دیگر فعالیتهای اینترنتی شما تأثیر مهمی خواهند داشت.
http چیست؟
پروتکل انتقال ابر متن (Hyper Text Transfer Protocol) یا به صورت مخفف http، پروتکلی در سمت کاربر یا لایه کاربردی است که برای شبکهای از سیستمهای کامپیوتری ساخته شده است.
تاریخچه ساخت این پروتکل دقیقاً به زمان ساخت اولین صفحه وب برمیگردد و آخرین توسعه آن در سال ۱۹۹۹ انجام شده است. درواقع آقای تیم برنرزلی که اولین صفحه وب یا WWW را ساخت، پروتکل http را بوجود آورد تا به کمک آن بتواند ابر متنها را بین شبکه ای از کامپیوترها انتقال دهد.
تاریخچه http
همانطور که گفتیم برای اولین بار همراه با به وجود آمده اولین WWW بود که پروتکل http هم به وجود آمد و مورد استفاده قرار گرفت. پروتکل http در آن زمان تنها درخواستهای بسیار سادهای را میتوانست انجام دهد، ولی بعد در سال ۱۹۹۱ نسخه 0.9 ارائه شد که مستندات داشت و میتوانست درخواستهای بیشتری را پشتیبانی کند.
نسخه 1.1 که در سال ۱۹۹۷ معرفی شد، توسط اکثر مرورگرها قابل شناسایی بود و آخرین به روز رسانی این پروتکل هم در ماه جون سال ۱۹۹۹ ارائه شد.
ساختار پروتکل http
پروتکل انتقال ابر متن، درواقع یک پروتکل درخواست – پاسخ است. این درخواست و پاسخ بین کلاینت و سرور انجام میشود، کلاینت میتواند یک مرورگر باشد و نرمافزار موجود بر روی سرور وب سایت، نقش سرور را بازی کند، که به این شکل درخواست و پاسخ بین این دو، توسط پروتکل http انجام می شود.
برای مثال، مرورگر یک درخواست مبنی بر بازیابی یک فایل به سرور انتقال میدهد (توسط http) و سرور فایل را در یک بسته به نام بسته پاسخ به مرورگر ارائه میکند.
حالا بحث کمی تخصصیتر میشود، قبلاً گفتیم که پروتکل http مربوط به لایه کاربردی یا سمت کاربر است، بنابراین در لایههای زیرین خود شامل پروتکل های دیگری میباشد. http با این فرض ساخته شد که لایه اطلاعات زیرین، کاملاً قابل اعتماد است و از پروتکل هدایت انتقال یا TCP برای انتقال دادهها استفاده میکند.
منابع http همگی با یک شناسه یکنواخت منبع یا به طور مشخصتر با یک شناسه وب (URL) مشخص میشوند که تمامی این آدرسها با http آغاز میگردند.
برای انجام درخواست و پاسخها، پروتکل http یک نشست یا جلسه ایجاد میکند، درواقع جلسه (session) به مجموعهای درخواست و پاسخ مرتبط گفته میشود. کلاینت معمولاً با ایجاد اتصال TCP بر روی درگاه شماره ۸۰ جلسه را آغاز میکند. سرور همیشه بر روی درگاه منتظر است تا کلاینت، درخواستی بفرستد. وقتی کلاینت درخواستش را برای سرور فرستاد، در پاسخ یک خط وضعیت و بدنه دریافت میکند. معمولاً بدنه شامل فایلی است که کلاینت درخواست داده است. ولی ممکن است شامل اطلاعات دیگر مانند خطاها هم باشد.
حالا که این نکات را درباره پروتکل http دانستیم با بررسی https تفاوت آنها را بهتر متوجه میشویم.
https چیست؟
پروتکل امن انتقال ابر متن یا Hyper Text Transfer Protocol Secure پروتکلی ارتباطی است که در اینترنت برای انتقال اطلاعات بین سیستمهای مختلف، استفاده میشود. این پروتکل با استفاده از لایه زیرین SSL رمزگذاری شده است. هدف از ساخت پروتکل https این بود که امکان اعتبارسنجی سایتها وجود داشته باشد و حریم خصوصی کاربران محافظت شود.
نسخههای زیادی از https وجود دارد که در اغلب آنها، اعتبار سنجی سایتها موجود است. به علاوه یکی از نقاط ضعف https این است که هر دو طرف کلاینت و سرور را رمزگذاری میکند به همین دلیل امکان حمله سایبری و شنود، روی آن وجود ندارد.
تاریخچه https
این پروتکل برای اولین بار در سال ۱۹۹۴ توسط نت اسکیپ با استفاده از یک SSL از مرورگر خود، ساخته شد. البته از آن زمان تا به حال تغییرات زیادی روی https اعمال شده است، در نسخه فعلی که در سال ۲۰۰۰ معرفی شد، به جای پروتکل SSL، امنیت لایه انتقال در لایه زیرین https جایگزین شده است.
ساختار پروتکل https
تمام URLهای مرتبط https با همین حروف شروع میشوند و از درگاه یا پورت ۴۴۳ استفاده میکنند. برای اینکه پروتکل https روی سرور نصب شود لازم است مدیر سرور، یک گواهی کلید عمومی یا PKI تهیه کند. همچنین این گواهی باید توسط یک مرجع صدور گواهینامه دیجیتال تأیید شود. اگر این گواهی تأیید شود، مرورگر ها به سایت اجازه میدهند که بدون اخطار به کاربران، نمایش داده شود. مرورگرها هر بار که بروز رسانی میشوند، این مجوزها را بررسی و به روز میکنند و به صورت پیشفرض به تعدای گواهی، اطمینان دارند مگر اینکه خلاف آن ثابت شود.
تفاوتهای http و https
- مرورگر کروم اجازه بازدید از صفحههای http را نمیدهد، البته در بعضی از نسخهها میتوانید این اخطار را نادیده بگیرید و از سایت بازدید کنید.
- اگر از مرورگرهای دیگری استفاده میکنید باید به آدرس سایت در نوار آدرس دقت کنید و مطمئن شوید که از پروتکل https استفاده میشود.
- صفحات وب که از https استفاده میکنند، قبل از آدرس، یک آیکن قفل سبز رنگ دارند و به این معنیست که گواهی آن قابل تأیید مرورگر است.
- اگر از پروتکل https استفاده کنید، گوگل رتبه بهتری به سایت شما میدهد و به این ترتیب اگر http باشید، از گوگل امتیاز منفی میگیرید و قطعاً ترافیک سایت، پایین میآید.
- http روی درگاه شماره ۸۰ کار میکند و https روی درگاه ۴۴۳ است.
- دادههایی که با http منتقل میشوند مانند یک متن به راحتی قابل خواندن و شنود هستند ولی دادهها روی https از هر دو طرف کلاینت و سرور رمزگذاری میشود.
- http در لایه کاربردی و https در لایه انتقال پیادهسازی میشود.
- برای استفاده از amp حتماً باید از https استفاده کنید.
نتیجهگیری
با خواندن این مطلب، متوجه شدید که پروتکلهای http و https چگونه کار میکنند و چه مزایا و معایبی دارند. از نقاط ضعف http به موارد بسیاری اشاره شد، برای مثال، صفحات وب که از http استفاده میکنند، به هیچ وجه امن نیستند و این مورد باعث میشود که گوگل به سایتهایی که از این پروتکل استفاده میکنند، حساس باشد و امتیاز منفی بدهد. به علاوه توجه کنید که تکنولوژی مربوط به این پروتکل سالهاست به روز نشده و به جای آن https معرفی شده است که با رمزگذاری، امنیت دادهها را تضمین میکند. اگر تا به حال برای سایت خود از https استفاده نمیکردید باید دست به کار شوید و آن را پیادهسازی کنید، شاید تنها نقطه ضعف برای https این باشد که باید هزینه بپردازید و اگر سایت بزرگی دارید از یک توسعهدهنده حرفهای وب بخواهید که تمام لینکها را تغییر دهد.