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
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:
Hostdatei bearbeiten, um einen benutzerdefinierten Hostnamen hinzuzufügen. 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 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://localhostgeben 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,travelund 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
testoderlocalhost(mysite.localhost) verwenden.testwird in Browsern nicht besonders behandelt,localhostjedoch schon: Chrome und Edge unterstützenhttp://<name>.localhostsofort 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 aufhttp://<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 wiemysite.localhosthaben), 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 Ryan Sleevi, Filippo Valsorda, Milica Mihajlija, Rowan Merewood und Jake Archibald. 🙌
Hero-Image von @moses_lee auf Unsplash, bearbeitet.