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 Entwicklerwebsite mit HTTPS ausführen müssen.
Weitere Informationen zur Verwendung von HTTPS für die lokale Entwicklung
In diesem Beitrag gelten Aussagen zu localhost auch für 127.0.0.1 und [::1], da beide die lokale Computeradresse, auch „Loopback-Adresse“ genannt, beschreiben. Der Einfachheit halber wird die Portnummer nicht angegeben.
Wenn Sie also http://localhost sehen, lesen Sie es als http://localhost:{PORT} oder http://127.0.0.1:{PORT}.
Zusammenfassung
Bei der lokalen Entwicklung wird standardmäßig http://localhost verwendet. Service Worker, Web Authentication API und mehr funktionieren.
In den folgenden Fällen benötigen Sie jedoch HTTPS für die lokale Entwicklung:
- Probleme mit gemischten Inhalten beheben
- HTTP/2 und höher verwenden
- Verwendung von Drittanbieterbibliotheken oder ‑APIs, für die HTTPS erforderlich ist
Benutzerdefinierten Hostnamen verwenden
Wann HTTPS für die lokale Entwicklung verwendet werden sollte
✨ Das ist alles, was du wissen musst. Wenn Sie mehr erfahren möchten, lesen Sie weiter.
Warum Ihre Entwicklerwebsite sicher sein sollte
Damit keine unerwarteten Probleme auftreten, sollte sich Ihre lokale Entwicklerwebsite so weit wie möglich wie Ihre Produktionswebsite verhalten. Wenn Ihre Produktionswebsite 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.
Auf http://localhost werden Service Worker, Sensor APIs, Authentication APIs, Payments und andere Funktionen, die bestimmte Sicherheitsgarantien erfordern, unterstützt und verhalten sich genau wie auf einer HTTPS-Website.
Wann HTTPS für die lokale Entwicklung verwendet werden sollte
Es kann vorkommen, dass 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 debuggen, das nur auf einer HTTPS-Website, aber nicht auf einer HTTP-Website auftritt, auch nicht auf
http://localhost, z. B. ein Problem mit gemischten Inhalten. - Sie müssen ein Verhalten, das spezifisch für HTTP/2 oder neuer ist, lokal testen oder reproduzieren. Das ist beispielsweise der Fall, wenn Sie die Ladeleistung mit HTTP/2 oder neuer testen müssen. Unsicheres HTTP/2 oder neuer 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. Normalerweise bedeutet das, dass Sie Ihre lokale Hostdatei überschrieben haben:
Bearbeiten einer Hostdatei zum Hinzufügen eines benutzerdefinierten Hostnamens. In diesem Fall betrachten Chrome, Edge, Safari und Firefox
mysite.examplestandardmäß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 Diese Liste ist nicht vollständig. Wenn Sie auf einen Fall stoßen, der hier nicht aufgeführt ist, werden Sie es merken: Auf
http://localhostfunktioniert etwas nicht oder es verhält sich nicht wie auf Ihrer Produktionswebsite. 🙃
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 Artikel HTTPS für die lokale Entwicklung verwenden.
Tipps, wenn Sie einen benutzerdefinierten Hostnamen verwenden
Wenn Sie einen benutzerdefinierten Hostnamen verwenden, z. B. durch Bearbeiten der Hosts-Datei:
- Verwenden Sie keinen einfachen Hostnamen wie
mysite, da es sonst zu Problemen kommen kann, wenn es eine Top-Level-Domain (TLD) mit demselben Namen (mysite) gibt. Das ist nicht unwahrscheinlich: 2020 gab es über 1.500 TLDs und die Liste wächst weiter.coffee,museum,travelund viele Namen großer Unternehmen (vielleicht sogar das Unternehmen, für das Sie arbeiten) sind TLDs. Die vollständige Liste findest du 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
testoderlocalhost(mysite.localhost) verwenden.testwird in Browsern nicht speziell behandelt,localhosthingegen schon: Chrome und Edge unterstützenhttp://<name>.localhostsofort und es verhält sich sicher, wenn localhost dies tut. Probieren Sie es aus: Führen Sie eine beliebige Website auf localhost aus und greifen Sie in Chrome oder Edge aufhttp://<whatever name you like>.localhost:<your port>zu. Das ist bald möglicherweise auch in Firefox und Safari möglich. Der Grund dafür, dass Sie Subdomains wiemysite.localhostverwenden können, ist, dasslocalhostnicht nur ein Hostname, sondern auch eine vollständige TLD wiecomist.
Weitere Informationen
Vielen Dank an alle Reviewer für ihre Beiträge und ihr Feedback, insbesondere an Ryan Sleevi, Filippo Valsorda, Milica Mihajlija, Rowan Merewood und Jake Archibald. 🙌
Hero-Image von @moses_lee auf Unsplash, bearbeitet.