Wann sollte HTTPS für die lokale Entwicklung verwendet werden?

Die Verwendung von http://localhost für die lokale Entwicklung ist in den meisten Fällen in Ordnung, außer in einigen Sonderfällen. In diesem Beitrag wird erläutert, wann Sie Ihre lokale Entwicklungswebsite mit HTTPS ausführen müssen.

Weitere Informationen finden Sie unter HTTPS für die lokale Entwicklung verwenden.

In diesem Beitrag gelten Aussagen zu localhost auch für 127.0.0.1 und [::1], da beide die Adresse des lokalen Computers beschreiben, auch als "Loopback-Adresse" bezeichnet. Außerdem wird die Portnummer nicht angegeben, um die Dinge einfach zu halten. Wenn Sie also http://localhost sehen, lesen Sie es als http://localhost:{PORT} oder http://127.0.0.1:{PORT}.

Zusammenfassung

Verwenden Sie bei der lokalen Entwicklung standardmäßig http://localhost. Service Worker, die Web Authentication API und mehr funktionieren. In den folgenden Fällen benötigen Sie jedoch HTTPS für die lokale Entwicklung:

  • Fehlerbehebung bei Problemen mit gemischten Inhalten
  • Verwendung von HTTP/2 und höher
  • Verwendung von Drittanbieterbibliotheken oder APIs, die HTTPS erfordern
  • Verwendung eines benutzerdefinierten Hostnamens

    Eine Liste der Fälle, in denen Sie HTTPS für die lokale Entwicklung verwenden müssen.
    Wann Sie HTTPS für die lokale Entwicklung verwenden sollten.

✨ Das ist alles, was Sie wissen müssen. Wenn Sie mehr Details erfahren möchten, lesen Sie weiter.

Warum Ihre Entwicklungswebsite sicher sein sollte

Um unerwartete Probleme zu vermeiden, sollte sich Ihre lokale Entwicklungswebsite so verhalten wie Ihre Produktionswebsite. Wenn Ihre Produktionswebsite also HTTPS verwendet, sollte sich Ihre lokale Entwicklungswebsite wie eine HTTPS-Website verhalten.

Standardmäßig http://localhost verwenden

Browser behandeln http://localhost auf besondere Weise: Obwohl es sich um HTTP handelt, verhält es sich meist wie eine HTTPS-Website.

Unter http://localhost werden Service Worker, Sensor APIs, Authentication APIs, Zahlungen und andere Funktionen unterstützt, für die bestimmte Sicherheitsgarantien erforderlich sind. Sie verhalten sich genau wie auf einer HTTPS-Website.

Wann Sie HTTPS für die lokale Entwicklung verwenden sollten

Es kann Sonderfälle geben, in denen sich http://localhost nicht wie eine HTTPS-Website verhält. Möglicherweise möchten Sie auch einfach einen benutzerdefinierten Websitenamen verwenden, der nicht http://localhost ist.

In den folgenden Fällen müssen Sie HTTPS für die lokale Entwicklung verwenden:

  • Sie müssen ein Problem lokal beheben, das nur auf einer HTTPS-Website auftritt, nicht aber auf einer HTTP-Website, auch nicht auf http://localhost, z. B. ein Problem mit gemischten Inhalten.
  • Sie müssen ein Verhalten, das spezifisch für HTTP/2 oder höher ist, lokal testen oder reproduzieren. Beispielsweise wenn Sie die Ladeleistung unter HTTP/2 oder höher testen müssen. Unsicheres HTTP/2 oder höher wird nicht unterstützt, auch nicht auf localhost.
  • Sie müssen Drittanbieterbibliotheken oder APIs, die HTTPS erfordern (z. B. OAuth), lokal testen.
  • Sie verwenden nicht localhost, sondern einen benutzerdefinierten Hostnamen für die lokale Entwicklung, z. B. mysite.example. In der Regel bedeutet das, dass Sie Ihre lokale Hostdatei überschrieben haben:

    Screenshot eines Terminals, in dem eine Hosts-Datei bearbeitet wird
    Hostdatei bearbeiten, um einen benutzerdefinierten Hostnamen hinzuzufügen.

    In diesem Fall betrachten Chrome, Edge, Safari und Firefox mysite.example standardmäßig nicht als sicher, obwohl es sich um eine lokale Website handelt. Sie verhält sich also nicht wie eine HTTPS-Website.

  • Weitere Fälle Dies ist keine vollständige Liste. Wenn Sie jedoch auf einen Fall stoßen, der hier nicht aufgeführt ist, wissen Sie, dass es Probleme mit http://localhost geben wird oder dass es sich nicht ganz wie Ihre Produktionswebsite verhält. 🙃

In all diesen Fällen müssen Sie HTTPS für die lokale Entwicklung verwenden.

HTTPS für die lokale Entwicklung verwenden

Wenn Sie HTTPS für die lokale Entwicklung verwenden müssen, lesen Sie den Beitrag HTTPS für die lokale Entwicklung verwenden.

Tipps zur Verwendung eines benutzerdefinierten Hostnamens

Wenn Sie einen benutzerdefinierten Hostnamen verwenden, z. B. durch Bearbeiten Ihrer Hostdatei:

  • Verwenden Sie keinen einfachen Hostnamen wie mysite. Wenn es eine Top-Level-Domain (TLD) gibt, die denselben Namen hat (mysite), treten Probleme auf. Das ist nicht unwahrscheinlich: Im Jahr 2020 gab es über 1.500 TLDs und die Liste wächst weiter. coffee, museum, travel und viele große Unternehmensnamen (vielleicht sogar das Unternehmen, für das Sie arbeiten!) sind TLDs. Die vollständige Liste finden Sie hier.
  • Verwenden Sie nur Domains, die Ihnen gehören oder die für diesen Zweck reserviert sind. Wenn Sie keine eigene Domain haben, können Sie entweder test oder localhost (mysite.localhost) verwenden. test wird in Browsern nicht besonders behandelt, localhost jedoch schon: Chrome und Edge unterstützen http://<name>.localhost sofort und es verhält sich sicher, wenn localhost das tut. Probieren Sie es aus: Führen Sie eine beliebige Website auf localhost aus und greifen Sie in Chrome oder Edge auf http://<whatever name you like>.localhost:<your port> zu. Das ist möglicherweise bald auch in Firefox und Safari möglich. Der Grund dafür, dass Sie dies tun können (Subdomains wie mysite.localhost haben), ist, dass localhost nicht nur ein Hostname, sondern auch eine vollständige TLD wie com ist.

Weitere Informationen

Vielen Dank an alle Reviewer für ihre Beiträge und ihr Feedback, insbesondere Ryan Sleevi, Filippo Valsorda, Milica Mihajlija, Rowan Merewood und Jake Archibald. 🙌

Hero-Image von @moses_lee auf Unsplash, bearbeitet.