L'utilizzo di http://localhost per lo sviluppo locale va bene nella maggior parte dei casi, tranne in alcuni casi speciali. Questo post spiega quando è necessario eseguire il sito di sviluppo locale con HTTPS.
Consulta anche: Come utilizzare HTTPS per lo sviluppo locale.
In questo post, le istruzioni relative a localhost sono valide anche per 127.0.0.1 e [::1], poiché entrambi descrivono l'indirizzo del computer locale, chiamato anche "indirizzo di loopback". Inoltre, per semplificare, il numero di porta non è specificato.
Quindi, quando vedi http://localhost, leggilo come http://localhost:{PORT} o http://127.0.0.1:{PORT}.
Riepilogo
Quando sviluppi in locale, utilizza http://localhost per impostazione predefinita. I service worker, l'API Web Authentication e altro ancora funzioneranno.
Tuttavia, nei seguenti casi, avrai bisogno di HTTPS per lo sviluppo locale:
- Debug dei problemi relativi ai contenuti misti
- Utilizzo di HTTP/2 e versioni successive
- Utilizzo di librerie o API di terze parti che richiedono HTTPS
Utilizzo di un nome host personalizzato
Quando utilizzare HTTPS per lo sviluppo locale.
✨ Questo è tutto ciò che devi sapere. Se ti interessano maggiori dettagli, continua a leggere.
Perché il sito di sviluppo deve comportarsi in modo sicuro
Per evitare problemi imprevisti, è consigliabile che il sito di sviluppo locale si comporti il più possibile come il sito web di produzione. Pertanto, se il sito web di produzione utilizza HTTPS, è consigliabile che il sito di sviluppo locale si comporti come un sito HTTPS.
Utilizza http://localhost per impostazione predefinita
I browser trattano http://localhost in modo speciale: anche se è HTTP, si comporta principalmente come un sito HTTPS.
Su http://localhost, i service worker, le API dei sensori, le API di autenticazione, i pagamenti e altre funzionalità che richiedono determinate garanzie di sicurezza sono supportati e si comportano esattamente come su un sito HTTPS.
Quando utilizzare HTTPS per lo sviluppo locale
Potresti riscontrare casi speciali in cui http://localhost non si comporta come un sito HTTPS oppure potresti semplicemente voler utilizzare un nome del sito personalizzato diverso da http://localhost.
Nei seguenti casi, devi utilizzare HTTPS per lo sviluppo locale:
- Devi eseguire il debug in locale di un problema che si verifica solo su un sito web HTTPS, ma non su un sito HTTP, nemmeno su
http://localhost, ad esempio un problema relativo ai contenuti misti. - Devi testare o riprodurre localmente un comportamento specifico di HTTP/2 o versioni successive. Ad esempio, se devi testare le prestazioni di caricamento su HTTP/2 o versioni successive. HTTP/2 o versioni successive non sicure non sono supportate, nemmeno su
localhost. - Devi testare localmente librerie o API di terze parti che richiedono HTTPS (ad esempio OAuth).
Non utilizzi
localhost, ma un nome host personalizzato per lo sviluppo locale, ad esempiomysite.example. In genere, ciò significa che hai sostituito il file hosts locale:
Modifica di un file hosts per aggiungere un nome host personalizzato. In questo caso, Chrome, Edge, Safari e Firefox per impostazione predefinita non considerano
mysite.examplesicuro, anche se si tratta di un sito locale. Pertanto, non si comporterà come un sito HTTPS.Altri casi. Questo non è un elenco esaustivo, ma se riscontri un caso non elencato qui, saprai che le cose non funzioneranno su
http://localhosto che non si comporterà esattamente come il tuo sito di produzione. 🙃
In tutti questi casi, devi utilizzare HTTPS per lo sviluppo locale.
Come utilizzare HTTPS per lo sviluppo locale
Se devi utilizzare HTTPS per lo sviluppo locale, consulta la sezione Come utilizzare HTTPS per lo sviluppo locale.
Suggerimenti se utilizzi un nome host personalizzato
Se utilizzi un nome host personalizzato, ad esempio modificando il file hosts:
- Non utilizzare un nome host semplice come
mysiteperché se esiste un dominio di primo livello (TLD) con lo stesso nome (mysite), si verificheranno problemi. E non è così improbabile: nel 2020 esistono oltre 1500 TLD e l'elenco è in crescita.coffee,museum,travele molti nomi di grandi aziende (magari anche l'azienda per cui lavori) sono TLD. Consulta l'elenco completo qui. - Utilizza solo i domini di tua proprietà o riservati a questo scopo. Se non hai un tuo dominio, puoi utilizzare
testolocalhost(mysite.localhost).testnon ha un trattamento speciale nei browser, malocalhostsì: Chrome ed Edge supportanohttp://<name>.localhostimmediatamente e si comporteranno in modo sicuro quando lo fa localhost. Prova: esegui qualsiasi sito su localhost e accedi ahttp://<whatever name you like>.localhost:<your port>in Chrome o Edge. Presto potrebbe essere possibile anche in Firefox e Safari. Il motivo per cui puoi farlo (avere sottodomini comemysite.localhost) è chelocalhostnon è solo un nome host, ma anche un TLD completo, comecom.
Scopri di più
Ringraziamo di cuore tutti i revisori per i loro contributi e feedback, in particolare Ryan Sleevi, Filippo Valsorda, Milica Mihajlija, Rowan Merewood e Jake Archibald. 🙌
Immagine promozionale di @moses_lee su Unsplash, modificata.