Когда использовать HTTPS для локальной разработки

Использование http://localhost для локальной разработки в большинстве случаев допустимо, за исключением некоторых особых случаев. В этой статье объясняется, когда вам необходимо запускать локальный сайт разработки с использованием HTTPS.

См. также: Как использовать HTTPS для локальной разработки .

В этом сообщении утверждения о localhost действительны также для 127.0.0.1 и [::1] , поскольку оба они описывают локальный адрес компьютера, также называемый «адресом обратной связи». Кроме того, для простоты номер порта не указан. Поэтому, когда вы видите 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 поддерживаются Service Workers, 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 в терминале.
    Редактирование файла hosts для добавления пользовательского имени хоста.

    В этом случае Chrome, Edge, Safari и Firefox по умолчанию не считают mysite.example безопасным, даже несмотря на то, что это локальный сайт. Поэтому он не будет вести себя как сайт с протоколом HTTPS.

  • Другие случаи! Это не исчерпывающий список, но если вы столкнетесь со случаем, не указанным здесь, вы будете знать: что-то будет ломаться на http://localhost , или он будет работать не совсем так, как ваш рабочий сайт. 🙃

Во всех этих случаях для локальной разработки необходимо использовать HTTPS.

Как использовать HTTPS для локальной разработки

Если вам необходимо использовать HTTPS для локальной разработки, перейдите по ссылке «Как использовать HTTPS для локальной разработки» .

Советы при использовании пользовательского имени хоста

Если вы используете, например, собственное имя хоста, отредактируйте файл hosts:

  • Не используйте простое имя хоста, например, mysite потому что если существует домен верхнего уровня (TLD) с таким же именем ( mysite ), у вас возникнут проблемы. И это не так уж и маловероятно: в 2020 году существовало более 1500 доменов верхнего уровня, и этот список постоянно растет. coffee , museum , travel и многие названия крупных компаний (возможно, даже компании, в которой вы работаете!) — это домены верхнего уровня. Полный список можно посмотреть здесь .
  • Используйте только ваши домены или домены, зарезервированные для этой цели. Если у вас нет собственного домена, вы можете использовать либо test , либо localhost ( mysite.localhost ). test не имеет специальной обработки в браузерах, а localhost имеет: Chrome и Edge поддерживают http://<name>.localhost по умолчанию, и он будет работать безопасно, когда это делает localhost. Попробуйте: запустите любой сайт на localhost и получите доступ к http://<whatever name you like>.localhost:<your port> в Chrome или Edge. Возможно, это скоро станет доступно и в Firefox и Safari . Причина, по которой вы можете это сделать (использовать поддомены типа mysite.localhost ), заключается в том, что localhost — это не просто имя хоста: это также полноценный домен верхнего уровня, например, com .

Узнать больше

Выражаю огромную благодарность всем рецензентам за их вклад и отзывы, особенно Райану Сливи, Филиппо Вальсорде, Милице Михайлови, Роуэну Меревуду и Джейку Арчибальду. 🙌

Главное изображение предоставлено @moses_lee на Unsplash , отредактировано.