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 les deux l'adresse de l'ordinateur local, également appelée "adresse de bouclage". De plus, pour simplifier les choses, le numéro de port n'est pas spécifié.
Par conséquent, lorsque vous voyez http://localhost
, lisez-le comme 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 services workers, l'API Web Authentication et plus encore fonctionneront.
Toutefois, dans les cas suivants, vous aurez besoin de HTTPS pour le développement local:
- Déboguer les problèmes liés au contenu mixte
- Utiliser HTTP/2 et versions ultérieures
- Utiliser des bibliothèques ou des API tierces qui nécessitent HTTPS
Utiliser un nom d'hôte personnalisé
✨ Voilà tout ce que vous devez savoir. Pour en savoir plus, lisez la suite.
Pourquoi votre site de développement doit-il se comporter de manière sécurisée ?
Pour éviter de rencontrer des problèmes inattendus, vous devez vous assurer 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 protocole HTTP, il se comporte principalement comme un site HTTPS.
Sur http://localhost
, les services workers, les API de capteurs, les API d'authentification, les paiements et les autres fonctionnalités qui nécessitent 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 simplement souhaiter utiliser un nom de site personnalisé qui ne soit pas 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, même pas
http://localhost
, par exemple un problème de contenu mixte. - Vous devez tester ou reproduire localement un comportement spécifique à HTTP/2 ou version ultérieure. Par exemple, si vous devez tester les performances de chargement sur HTTP/2 ou version ultérieure. Le protocole HTTP/2 non sécurisé ou version ultérieure n'est pas compatible, même sur
localhost
. - Vous devez tester localement les bibliothèques ou API tierces qui nécessitent le protocole 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 ignoré votre fichier hosts local:Dans ce cas, Chrome, Edge, Safari et Firefox ne considèrent pas
mysite.example
comme 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 saurez que des problèmes vont se produire sur
http://localhost
ou que votre site de production ne se comportera pas tout à fait comme prévu. 🙃
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 simple 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
,travel
et de nombreux noms de grandes entreprises (peut-être même celui de l'entreprise dans laquelle vous travaillez) sont des domaines de premier niveau. Cliquez ici pour consulter la liste complète. - N'utilisez que des domaines qui vous appartiennent ou qui sont réservés à cet effet. Si vous ne possédez pas de domaine, vous pouvez utiliser
test
oulocalhost
(mysite.localhost
).test
n'est pas traité de manière spéciale dans les navigateurs, maislocalhost
l'est: Chrome et Edge sont compatibles avechttp://<name>.localhost
dès la sortie de la boîte, et il se comporte de manière sécurisée lorsque localhost le fait. Essayez: exécutez n'importe quel site sur localhost et accédez àhttp://<whatever name you like>.localhost:<your port>
dans Chrome ou Edge. Il est possible que cela soit bientôt possible dans Firefox et Safari également. Vous pouvez utiliser des sous-domaines commemysite.localhost
, carlocalhost
n'est pas seulement un nom d'hôte: il s'agit également d'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
Nous remercions tous les contributeurs et les commentateurs, en particulier Ryan Sleevi, Filippo Valsorda, Milica Mihajlija, Rowan Merewood et Jake Archibald. 🙌
Image héros par @moses_lee sur Unsplash, modifiée.