زمان استفاده از HTTPS برای توسعه محلی

استفاده از http://localhost برای توسعه محلی در بیشتر مواقع خوب است، مگر در موارد خاص. این پست توضیح می‌دهد که چه زمانی نیاز دارید سایت توسعه محلی خود را با HTTPS اجرا کنید.

همچنین ببینید: نحوه استفاده از HTTPS برای توسعه محلی .

در این پست، عبارات مربوط به localhost برای 127.0.0.1 و [::1] نیز معتبر هستند، زیرا هر دو آدرس کامپیوتر محلی را توصیف می‌کنند که به آن "آدرس loopback" نیز گفته می‌شود. همچنین، برای ساده نگه داشتن مطالب، شماره پورت مشخص نشده است. بنابراین وقتی http://localhost می‌بینید، آن را به صورت http://localhost:{PORT} یا http://127.0.0.1:{PORT} بخوانید.

خلاصه

هنگام توسعه محلی، به طور پیش‌فرض از http://localhost استفاده کنید. Service Workers، Web Authentication API و موارد دیگر کار خواهند کرد. با این حال، در موارد زیر، برای توسعه محلی به HTTPS نیاز خواهید داشت:

  • اشکال‌زدایی مشکلات محتوای ترکیبی
  • استفاده از HTTP/2 و نسخه‌های جدیدتر
  • استفاده از کتابخانه‌ها یا APIهای شخص ثالث که به HTTPS نیاز دارند
  • استفاده از نام میزبان سفارشی

    فهرستی از مواردی که برای توسعه محلی نیاز به استفاده از HTTPS دارید.
    چه زمانی از HTTPS برای توسعه محلی استفاده کنیم؟

✨ این تمام چیزی است که باید بدانید. اگر به جزئیات بیشتر علاقه‌مند هستید، به خواندن ادامه دهید!

چرا سایت توسعه شما باید ایمن رفتار کند؟

برای جلوگیری از بروز مشکلات غیرمنتظره، می‌خواهید سایت توسعه محلی شما تا حد امکان مانند وب‌سایت اصلی شما رفتار کند. بنابراین، اگر وب‌سایت اصلی شما از HTTPS استفاده می‌کند، می‌خواهید سایت توسعه محلی شما مانند یک سایت HTTPS رفتار کند.

به طور پیش‌فرض از http://localhost استفاده کنید

مرورگرها با http://localhost به شیوه‌ای خاص رفتار می‌کنند: اگرچه HTTP است، اما عمدتاً مانند یک سایت HTTPS رفتار می‌کند .

در http://localhost ، سرویس ورکرها، APIهای حسگر، APIهای احراز هویت، پرداخت‌ها و سایر ویژگی‌هایی که نیاز به تضمین‌های امنیتی خاصی دارند ، پشتیبانی می‌شوند و دقیقاً مانند یک سایت HTTPS رفتار می‌کنند.

چه زمانی از HTTPS برای توسعه محلی استفاده کنیم؟

ممکن است با موارد خاصی مواجه شوید که http://localhost مانند یک سایت HTTPS رفتار نکند —یا ممکن است بخواهید از یک نام سایت سفارشی استفاده کنید که http://localhost نباشد.

در موارد زیر باید از HTTPS برای توسعه محلی استفاده کنید:

  • شما باید مشکلی را که فقط در یک وب‌سایت HTTPS رخ می‌دهد و در یک سایت HTTP، حتی http://localhost ، رخ نمی‌دهد، مانند مشکل محتوای ترکیبی ، به صورت محلی اشکال‌زدایی کنید.
  • شما باید به صورت محلی رفتاری خاص برای HTTP/2 یا جدیدتر را آزمایش یا بازتولید کنید. برای مثال، اگر نیاز به آزمایش عملکرد بارگذاری در HTTP/2 یا جدیدتر دارید. HTTP/2 ناامن یا جدیدتر حتی در localhost پشتیبانی نمی‌شود.
  • شما باید کتابخانه‌ها یا APIهای شخص ثالثی که به HTTPS نیاز دارند (مثلاً OAuth) را به صورت محلی آزمایش کنید.
  • شما از localhost استفاده نمی‌کنید، بلکه از یک نام میزبان سفارشی برای توسعه محلی استفاده می‌کنید، برای مثال mysite.example . معمولاً این بدان معناست که شما فایل میزبان‌های محلی خود را بازنویسی کرده‌اید:

    تصویری از ترمینال در حال ویرایش فایل hosts
    ویرایش فایل hosts برای اضافه کردن یک نام میزبان سفارشی.

    در این حالت، کروم، اج، سافاری و فایرفاکس به طور پیش‌فرض mysite.example را امن نمی‌دانند ، حتی اگر یک سایت محلی باشد. بنابراین مانند یک سایت HTTPS رفتار نخواهد کرد.

  • موارد دیگر! این لیست کامل نیست، اما اگر با موردی مواجه شدید که در اینجا ذکر نشده است، متوجه خواهید شد: همه چیز در http://localhost با مشکل مواجه خواهد شد، یا کاملاً مانند سایت اصلی شما رفتار نخواهد کرد. 🙃

در همه این موارد، شما باید از HTTPS برای توسعه محلی استفاده کنید.

نحوه استفاده از HTTPS برای توسعه محلی

اگر برای توسعه محلی نیاز به استفاده از HTTPS دارید، به بخش نحوه استفاده از HTTPS برای توسعه محلی مراجعه کنید.

نکاتی در صورت استفاده از نام میزبان سفارشی

اگر از یک نام میزبان سفارشی استفاده می‌کنید، مثلاً فایل میزبان‌های خود را ویرایش می‌کنید:

  • از یک نام میزبان ساده مانند mysite استفاده نکنید، زیرا اگر یک دامنه سطح بالا (TLD) با همین نام ( mysite ) وجود داشته باشد، با مشکل مواجه خواهید شد. و این چندان بعید نیست: در سال ۲۰۲۰، بیش از ۱۵۰۰ TLD وجود دارد و این فهرست در حال افزایش است. نام‌های coffee ، museum ، travel و بسیاری از شرکت‌های بزرگ (شاید حتی شرکتی که در آن کار می‌کنید!) TLD هستند. فهرست کامل را اینجا ببینید .
  • فقط از دامنه‌هایی استفاده کنید که متعلق به شما هستند یا برای این منظور رزرو شده‌اند. اگر دامنه‌ای برای خودتان ندارید، می‌توانید از test یا localhost ( mysite.localhost ) استفاده کنید. test در مرورگرها رفتار خاصی ندارد، اما localhost دارد: کروم و اج از http://<name>.localhost به صورت پیش‌فرض پشتیبانی می‌کنند و وقتی localhost پشتیبانی شود، به طور ایمن رفتار خواهد کرد. آن را امتحان کنید: هر سایتی را روی localhost اجرا کنید و در کروم یا اج به http://<whatever name you like>.localhost:<your port> دسترسی پیدا کنید. این ممکن است به زودی در فایرفاکس و سافاری نیز امکان‌پذیر شود. دلیل اینکه می‌توانید این کار را انجام دهید (داشتن زیردامنه‌هایی مانند mysite.localhost ) این است که localhost فقط یک نام میزبان نیست: بلکه یک TLD کامل مانند com نیز هست.

بیشتر بدانید

با تشکر فراوان از همه داوران - به ویژه رایان اسلیوی، فیلیپو والسوردا، میلیکا میهالیا، روآن مروود و جیک آرچیبالد - به خاطر مشارکت‌ها و بازخوردهایشان. 🙌

تصویر قهرمان از @moses_lee در Unsplash ، ویرایش شده.