Ich erstelle lokal eine Express.js- App. Um dies in etwas anderem als localhost zu testen, habe ich meiner hosts-Datei den folgenden Eintrag hinzugefügt:
127.0.0.1 mynewapp.dev
Ohne die App zu starten, habe ich es versehentlich http://mynewapp.dev:3000
in Chrome versucht (hier sollte die App ausgeführt werden). Zu meiner Überraschung leitete Chrome mich zu https://mynewapp.dev:3000
.
Kopfzeilen in der Browserkonsole zeigen:
Allgemeines:
- URL anfordern:
http://mynewapp.dev:3000/
- Anforderungsmethode: GET
- Statuscode: 307 Interne Umleitung
- Referrer Policy: Kein Referrer beim Downgrade
Antwort-Header:
- Lage:
https://mynewapp.dev:3000/
- Nicht maßgeblicher Grund: HSTS
Header anfordern:
- Vorläufige Header werden angezeigt
- Upgrade-Insecure-Requests: 1
- User-Agent: Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, wie
- Gecko) Chrome / 68.0.3440.106 Safari / 537.36
- X-DevTools-Emulate-Network-Conditions-Client-ID: 23A0CBD658A51DF4CA3B25A263078DA4
Wie ist es passiert? Ich habe keine Software, die die Anfrage umleitet, und meine App läuft nicht einmal!
Ich benutze:
- Chrome-Version 68.0.3440.106 (Offizieller Build) (64-Bit)
- Windows 10 Enterprise
Dies geschieht jedoch nicht in:
- Microsoft Edge 40.15063.674.0 (Zeigt den Fehlercode an: INET_E_RESOURCE_NOT_FOUND)
- IE 11 (zeigt Fehlercode: INET_E_RESOURCE_NOT_FOUND)
Um die Kommentare zu beantworten:
curl -I http://mynewapp.dev:3000
bleibt stecken und zeigt nichts.Ich habe es auch versucht
chrome://net-internals/#events
und die Anfrage gefunden. Das habe ich gesehen:100382: URL_REQUEST http://mynewapp.dev:3000/ Start Time: 2018-08-17 07:32:03.853 t=16751 [st= 0] +REQUEST_ALIVE [dt=1007] --> priority = "HIGHEST" --> url = "http://mynewapp.dev:3000/" t=16751 [st= 0] +URL_REQUEST_DELEGATE [dt=1] t=16751 [st= 0] DELEGATE_INFO [dt=1] --> delegate_blocked_by = "extension AdBlock" t=16752 [st= 1] -URL_REQUEST_DELEGATE t=16752 [st= 1] +URL_REQUEST_START_JOB [dt=6] --> load_flags = 18432 (MAIN_FRAME_DEPRECATED | MAYBE_USER_GESTURE) --> method = "GET" --> url = "http://mynewapp.dev:3000/" t=16752 [st= 1] URL_REQUEST_REDIRECT_JOB --> reason = "HSTS" t=16752 [st= 1] URL_REQUEST_FAKE_RESPONSE_HEADERS_CREATED --> HTTP/1.1 307 Internal Redirect Location: https://mynewapp.dev:3000/ Non-Authoritative-Reason: HSTS t=16752 [st= 1] +URL_REQUEST_DELEGATE [dt=6] t=16752 [st= 1] DELEGATE_INFO [dt=6] --> delegate_blocked_by = "MojoAsyncResourceHandler" t=16758 [st= 7] -URL_REQUEST_DELEGATE t=16758 [st= 7] URL_REQUEST_REDIRECTED --> location = "https://mynewapp.dev:3000/" t=16758 [st= 7] -URL_REQUEST_START_JOB t=16758 [st= 7] +URL_REQUEST_DELEGATE [dt=0] t=16758 [st= 7] DELEGATE_INFO [dt=0] --> delegate_blocked_by = "extension AdBlock" t=16758 [st= 7] -URL_REQUEST_DELEGATE t=16758 [st= 7] +URL_REQUEST_START_JOB [dt=1000] --> load_flags = 18432 (MAIN_FRAME_DEPRECATED | MAYBE_USER_GESTURE) --> method = "GET" --> url = "https://mynewapp.dev:3000/" t=16759 [st= 8] URL_REQUEST_DELEGATE [dt=0] t=16759 [st= 8] HTTP_CACHE_GET_BACKEND [dt=0] t=16759 [st= 8] HTTP_CACHE_OPEN_ENTRY [dt=0] --> net_error = -2 (ERR_FAILED) t=16759 [st= 8] HTTP_CACHE_CREATE_ENTRY [dt=0] t=16759 [st= 8] HTTP_CACHE_ADD_TO_ENTRY [dt=0] t=16759 [st= 8] +HTTP_STREAM_REQUEST [dt=999] t=16759 [st= 8] HTTP_STREAM_JOB_CONTROLLER_BOUND --> source_dependency = 100392 (HTTP_STREAM_JOB_CONTROLLER) t=17758 [st=1007] HTTP_STREAM_REQUEST_BOUND_TO_JOB --> source_dependency = 100393 (HTTP_STREAM_JOB) t=17758 [st=1007] -HTTP_STREAM_REQUEST t=17758 [st=1007] -URL_REQUEST_START_JOB --> net_error = -102 (ERR_CONNECTION_REFUSED) t=17758 [st=1007] URL_REQUEST_DELEGATE [dt=0] t=17758 [st=1007] -REQUEST_ALIVE --> net_error = -102 (ERR_CONNECTION_REFUSED)
- Löschte den Host-Cache von
chrome://net-internals/#dns
. Funktioniert nicht. - Alle Chrome-Erweiterungen wurden gestoppt. Keine Verhaltensänderung.
google-chrome
redirection
hosts-file
sampathsris
quelle
quelle
curl -I http://mynewapp.dev:3000
? Das sollten Sie Header zeigen, wie200
für eine erfolgreiche Seite Anruf oder eine301
oder302
für Umleitung. Das307 Internal Redirect
ist ein bisschen seltsam. Schauen Sie sich diese Antwort auf Stack Overflow an, um weitere Informationen zu erhalten .chrome://net-internals/#events
. Aber ich kann keinen Kopf oder Schwanz daraus machen. Ich werde etwas recherchieren. Vielen Dank..dev
Dupe superuser.com/a/1276430 und superuser.com/a/1251483 auch stackoverflow.com/questions/47768289 und stackoverflow.com/questions/47735877 und stackoverflow.com/questions/47707124 und stackoverflow.com/questions / 47754347Antworten:
Ab 2018 erzwingen Chrome und Firefox nun HSTS für die
.dev
Top-Level-Domain.Wie in diesem Blog-Beitrag erläutert , verwenden Desktop-Entwickler seit fast ewigen Zeiten lokal umgeleitete (via
hosts
) Domains..dev
Offenbar befindet sich jetzt (ab Mai 2018) eine legitime.dev
generische Top-Level-Domain (gTLD) im Besitz von Google. Und es gibt dieses Chromium-Commit vom 4. Januar 2018, in dem ausdrücklich Folgendes angegeben ist :Was für ein Spaß! Ab Juli 2018 ist dies auch in Firefox möglich .
Die einfachste und praktischste Lösung - für alle, die HTTPS nicht für die lokale Entwicklung einrichten möchten - besteht darin, ein anderes Suffix wie
.localhost
oder sogar.local
oder ehrlich gesagt alles in der Welt wie*.foobar
und so zu verwenden.Aber das Wichtigste ist, dass die Verwendung des
*.dev
Suffixes für die lokale Entwicklung im Jahr 2018 nur mehr versehentliche Kopfschmerzen und Verwirrung hervorruft als alles andere.quelle