L'utilisation de http://localhost pour le développement local est généralement acceptable, sauf dans certains cas particuliers. Cet article explique quand vous devez exécuter votre site de développement local avec HTTPS.
Consultez également Utiliser HTTPS pour le développement local.
Dans cet article, les instructions concernant localhost sont également valables pour 127.0.0.1 et [::1], car elles décrivent toutes deux l'adresse de l'ordinateur local, également appelée "adresse de bouclage". De plus, pour plus de simplicité, le numéro de port n'est pas spécifié.
Ainsi, lorsque vous voyez http://localhost, lisez http://localhost:{PORT} ou http://127.0.0.1:{PORT}.
Résumé
Lorsque vous développez en local, utilisez http://localhost par défaut. Les service workers, l'API Web Authentication et d'autres éléments fonctionneront.
Toutefois, dans les cas suivants, vous aurez besoin du protocole HTTPS pour le développement local :
- Déboguer les problèmes de contenu mixte
- Utiliser HTTP/2 et versions ultérieures
- Utiliser des bibliothèques ou des API tierces nécessitant HTTPS
Utiliser un nom d'hôte personnalisé
Quand utiliser HTTPS pour le développement local ?
✨ Voilà tout ce que vous devez savoir. Pour en savoir plus, continuez votre lecture.
Pourquoi votre site de développement doit-il se comporter de manière sécurisée ?
Pour éviter tout problème inattendu, vous devez faire en sorte que votre site de développement local se comporte autant que possible comme votre site Web de production. Par conséquent, si votre site Web de production utilise HTTPS, vous souhaitez que votre site de développement local se comporte comme un site HTTPS.
Utiliser http://localhost par défaut
Les navigateurs traitent http://localhost de manière spéciale : bien qu'il s'agisse d'un site HTTP, il se comporte principalement comme un site HTTPS.
Sur http://localhost, les service workers, les API Sensor, les API Authentication, les paiements et d'autres fonctionnalités nécessitant certaines garanties de sécurité sont compatibles et se comportent exactement comme sur un site HTTPS.
Quand utiliser HTTPS pour le développement local ?
Il peut arriver que http://localhost ne se comporte pas comme un site HTTPS. Vous pouvez également souhaiter utiliser un nom de site personnalisé autre que http://localhost.
Vous devez utiliser HTTPS pour le développement local dans les cas suivants :
- Vous devez déboguer localement un problème qui ne se produit que sur un site Web HTTPS, mais pas sur un site HTTP, ni même sur
http://localhost, comme un problème de contenu mixte. - Vous devez tester ou reproduire localement un comportement spécifique à HTTP/2 ou à une version ultérieure. Par exemple, si vous devez tester les performances de chargement sur HTTP/2 ou une version ultérieure. Les versions HTTP/2 ou ultérieures non sécurisées ne sont pas acceptées, même sur
localhost. - Vous devez tester localement les bibliothèques ou API tierces qui nécessitent HTTPS (par exemple, OAuth).
Vous n'utilisez pas
localhost, mais un nom d'hôte personnalisé pour le développement local, par exemplemysite.example. En règle générale, cela signifie que vous avez remplacé votre fichier hôtes local :
Modification d'un fichier d'hôtes pour ajouter un nom d'hôte personnalisé. Dans ce cas, Chrome, Edge, Safari et Firefox ne considèrent pas
mysite.examplecomme sécurisé par défaut, même s'il s'agit d'un site local. Il ne se comportera donc pas comme un site HTTPS.Autres cas Cette liste n'est pas exhaustive, mais si vous rencontrez un cas qui n'y figure pas, vous le saurez : des problèmes se produiront sur
http://localhostou le site ne se comportera pas tout à fait comme votre site de production. 🙃
Dans tous ces cas, vous devez utiliser HTTPS pour le développement local.
Utiliser HTTPS pour le développement local
Si vous devez utiliser HTTPS pour le développement local, consultez Utiliser HTTPS pour le développement local.
Conseils si vous utilisez un nom d'hôte personnalisé
Si vous utilisez un nom d'hôte personnalisé, par exemple en modifiant votre fichier hosts :
- N'utilisez pas de nom d'hôte nu, comme
mysite, car si un domaine de premier niveau (TLD) porte le même nom (mysite), vous rencontrerez des problèmes. Et ce n'est pas si improbable : en 2020, il existe plus de 1 500 TLD, et la liste ne cesse de s'allonger.coffee,museum,travelet de nombreux noms de grandes entreprises (peut-être même celle pour laquelle vous travaillez) sont des TLD. Cliquez ici pour consulter la liste complète. - N'utilisez que les domaines qui vous appartiennent ou qui sont réservés à cet usage. Si vous ne possédez pas votre propre domaine, vous pouvez utiliser
testoulocalhost(mysite.localhost).testne bénéficie pas d'un traitement spécial dans les navigateurs, contrairement àlocalhost: Chrome et Edge sont compatibles avechttp://<name>.localhostpar défaut, et il se comportera de manière sécurisée comme localhost. Essayez : exécutez n'importe quel site sur localhost et accédez àhttp://<whatever name you like>.localhost:<your port>dans Chrome ou Edge. Cette fonctionnalité sera peut-être bientôt disponible dans Firefox et Safari. Vous pouvez le faire (avoir des sous-domaines commemysite.localhost) parce quelocalhostn'est pas seulement un nom d'hôte, mais aussi un TLD complet, commecom.
En savoir plus
- Contextes sécurisés
- localhost en tant que contexte sécurisé
- localhost en tant que contexte sécurisé dans Chrome
Merci beaucoup à tous les relecteurs pour leurs contributions et leurs commentaires, en particulier à Ryan Sleevi, Filippo Valsorda, Milica Mihajlija, Rowan Merewood et Jake Archibald. 🙌
Image de bannière par @moses_lee sur Unsplash, modifiée.