زمانی که در نوار آدرس مرورگر خود آدرس سایتی را وارد میکنید، بین مرورگر شما و سرور سایت ارتباطی شکل میگیرد. این ارتباط بر بستر HTTP، یا نسخه پیشرفتهتر آن، HTTPS انجام میشود. امروزه استفاده نکردن از پروتکل HTTPS در وبسایتهایی که اطلاعات حساس و محرمانه کاربران خود را جمعآوری میکنند، یک ضعف بزرگ به حساب میآید. در ادامه با HTTP و HTTPS و تفاوت آنها آشنا خواهید شد.
HTTP چیست؟
HTTP، کوتاه شدهی عبارت Hypertext Transfer Protocol یا پروتکل انتقال ابرمتن است. HTTP قوانین و استانداردهایی را ارائه میکند که نحوه انتقال اطلاعات در اینترنت را کنترل میکنند. HTTP برای مرورگرها و سرورها قوانین استانداردی جهت ارتباط برقرار کردن تعیین میکند.
HTTP یک پروتکل مربوط به لایه کاربرد شبکه است که روی پروتکل TCP بنا شده است. HTTP از ابرمتن دارای ساختار استفاده میکند تا ارتباط منطقی میان نودهای حاوی Text را برقرار سازد. همچنین بهعنوان یک پروتکل بدونحالت یا Stateless شناخته میشود؛ چرا که هر فرمان به صورت جداگانه اجرا میشود، بدون این که نیازی به ارجاع به اجرای دستور قبلی باشد.
HTTPS چیست؟
HTTPS، کوتاه شدهی عبارت Hyper Text Transfer Protocol Secure یا پروتکل امن انتقال ابرمتن است. این پروتکل، نسخه بسیار امنتر HTTP است و از پورت ۴۴۳ برای مبادله اطلاعات استفاده میکند. این پروتکل انتقال امن را به وسیله رمزنگاری تمام ارتباطات با استفاده از SSL، ممکن میکند. HTTPS ترکیبی از پروتکل SSL یا TLS و HTTP است. HTTPS تعیین هویت امن و رمزنگاری شده یک سرور شبکه را فراهم میکند.
HTTPS همچنین اجازه ایجاد یک ارتباط رمزنگاری شده بین مرورگر و سرور را میدهد. این پروتکل امنیت دوسویه اطلاعات را فراهم میکند. این کار، از سرقت اطلاعات حساس جلوگیری میکند. در پروتکل HTTPS، تبادلات SSL به کمک یک الگوریتم رمزنگاری مبتنی بر کلید، انجام میشود. این کلید ۴۰ یا ۱۲۸ بیت طول دارد.
تفاوتهای کلیدی HTTP و HTTPS
- HTTP از مکانیزم رمزنگاری اطلاعات بهره نمیبرد، درحالیکه HTTPS از پروتکلهای SSL یا TLS برای امن کردن ارتباط بین سرور و کلاینت بهره میبرد.
- HTTP از درهمسازی دادهها بهره نمیبرد، درحالیکه HTTPS دادهها را قبل از ارسال درهمسازی کرده و در سمت گیرنده این اطلاعات را به حالت اصلی خود باز خواهد گرداند.
- HTTP به گواهینامه و تأیید اعتبار دامنه نیازی ندارد، اما HTTPS برای استفاده از SSL به گواهی نیاز دارد.
- HTTP در لایه کاربرد شبکه اجرا میشود درحالیکه HTTPS در لایه انتقال کار میکند.
- HTTP به طور پیشفرض روی پورت ۸۰ اجرا میشود، درحالیکه HTTPS روی پورت ۴۴۳ اجرا میشود.
- HTTP اطلاعات را به صورت متن ساده منتقل میکند، درحالیکه HTTPS از متن رمزنگاری شده استفاده میکند.
- HTTP در مقایسه با HTTPS سریعتر است، چرا که HTTPS از توان محاسباتی برای رمزنگاری کانال ارتباطی استفاده میکند.
- آدرس اینترنتی HTTP با http:// آغاز میشود اما آدرس HTTPS با https:// آغاز میشود.
- HTTP برای وبسایتهایی که تنها به منظور نمایش اطلاعات طراحی شدهاند، مانند وبلاگها مناسب است، درحالیکه HTTPS برای وبسایتهایی که اطلاعات شخصی و حساسی نظیر شماره ملی و شماره کارت بانکی را جمع آوری میکند، مناسب است.
- HTTP تأثیری در رتبه سایت در نتایج جستجو ندارد، اما HTTPS روی این مورد تأثیر مثبت میگذارد.
مزایای HTTP
- HTTP میتواند به همراه پروتکلهای دیگر در اینترنت، یا روی شبکههای دیگر، پیاده سازی شود.
- صفحات HTTP روی کامپیوتر یا حافظه نهان ذخیره میشوند، بنابراین دسترسی به آنها راحتتر است.
- HTTP مستقل از پلتفرم است که این موضوع تبادل اطلاعات در پلتفرمهای مختلف را ممکن میکند.
- به پشتیبانی زمان اجرا نیازی ندارد.
- در برابر فایروالها کارامد است، بنابراین میتوان از آن در کاربردهای جهانی استفاده کرد.
- مبتنی بر اتصال نیست، بنابراین شبکه را بیش از حد مشغول نخواهد کرد.
محدودیتهای HTTP
- حریم شخصی تضمین نمیشود، چرا که هر شخصی قادر به خواندن اطلاعات است.
- یکپارچگی اطلاعات یک مشکل بزرگ است،زیرا ممکن است شخصی اقدام به دستکاری محتوا کند و به همین دلیل پروتکل HTTP امن نیست، چرا که از روشهای رمزنگاری استفاده نمیکند.
- امنیت ارتباطات تضمین شده نیست، زیرا سرقت نام کاربری و کلمه عبور ممکن است.
مزایای HTTPS
- در بیشتر موارد، وبسایتهایی که روی HTTPS اجرا میشوند، حتی در صورتی که اقدام به ورود به آن سایت با وارد کردن HTTP:// کنید، شما را به یک ارتباط امن بر بستر HTTPS منتقل میکنند.
- به کاربران اجازه اجرای مبادلات امن تجارت الکترونیکی نظیر بانکداری آنلاین را میدهد.
- تکنولوژی SSL از کاربران محافظت میکند و به آنها حس اطمینان میدهد.
- یک نهاد مسقل، هویت صاحب گواهینامه SSL را تأیید میکند، بنابراین هر گواهینامه حاوی اطلاعات منحصربهفرد و احزار هویت شده ی صاحب آن است.
محدودیتهای HTTPS
- پروتکل HTTPS نمیتواند از سرقت اطلاعات حساس مربوط به صفحاتی که در حافظه نهان مرورگر ذخیره شده است، جلوگیری کند.
- دادهها روی پروتکل SSL تنها در طول رد و بدل شدن اطلاعات در شبکه رمزنگاری میشوند، بنابراین HTTPS قادر به پاک کردن متن ذخیره شده در حافظه مرورگر نیست.
- HTTPS میتواند باعث ایجاد سربار روی شبکه و افزایش بیش از حد محاسبات شود.
تفاوت گواهیهای مختلف SSL/TLS استفاده شده در پروتکل HTTPS
- تأیید اعتبار دامنه یا :Domain Validation این گواهی صحت مالکیت شخص متقاضی گواهی را بر روی دامنه تأیید میکند. تأیید مالکیت شخص بر دامنه میتواند بین چند دقیقه یا چند ساعت طول بکشد.
- تأیید اعتبار سازمان یا Organization Validation: نهاد مربوط به تأیید اعتبار نه تنها صحت مالکیت بر دامنه، بلکه هویت آن شخص را نیز بررسی میکند. این به آن معناست که میتوان از صاحب دامنه درخواست کرد تا مدارک هویتی را برای احراز هویت خود فراهم کنند.
- تأیید اعتبار گسترش یافته یا Extended Validation: این نوع از گواهی، به بالاترین سطح تأیید نیاز دارد. تأیید این گواهی نیاز به مشخص شدن صحت مالکیت بر دامنه، احراز هویت، و ثبتنام (Registration) دارد.
جمعبندی : مهاجرت از HTTP به HTTPS
تبدیل HTTP به HTTPS راحت به به شرح زیر است:
- یک گواهی SSL خریداری کنید. بهتر است از شرکتی که هاست شما را فراهم کرده گواهی SSL بخرید، چرا که آنها میتوانند فعال بودن و نصب صحیح آن روی سرور شما را تضمین کنند.
- گواهی SSL را روی اکانت هاست خود نصب کنید.
- قبل از این که تبدیل به HTTPS را نهایی کنید، اطمینان حاصل کنید که تمامی لینکهای داخل سایت شما، یک آدرس اینترنتی صحیح HTTPS دارد. داشتن تعدادی لینک HTTP و تعدادی لینک HTTPS، ممکن است باعث سردرگمی مخاطبان سایت شما و همچنین اشکالاتی در بارگزاری برخی اجزای صفحات وب شود. این موضوع روی سئوی سایت نیز تأثیر منفی میگذارد.
- از ریدایرکت ۳۰۱ (301 Redirect) استفاده کنید تا موتورهای جستجو متوجه تغییر آدرس اینترنتی لینکهای شما شوند و ترافیک ورودی را به آدرسهای جدید منتفل کنند.