J'ai un serveur web qui tourne sur ma machine locale et lorsque j'effectue une requête cURL sur ce serveur à l'aide de la commande localhost
adresse il s'exécute très rapidement. Cependant, lorsque j'ajoute un /etc/hosts comme
127.0.0.1 test.local
et ensuite effectuer la même requête cURL :
curl -I http://test.local:3002/images/logo.png
il y a un retard de 2-3 secondes. En changeant la requête cURL en localhost
ne produit à nouveau aucun retard.
Ceci est reproductible à chaque fois.
J'ai essayé d'exécuter la requête lente sous dtruss
pour voir si je peux trouver un appel système qui cause le retard. Rien d'inhabituel n'apparaît.
J'ai essayé de créer un service factice par l'intermédiaire de netcat
qui renvoie juste HTTP/1.0 200 OK
Je peux donc garantir que le problème n'est pas vraiment dû à mon serveur web. Encore une fois, aucune différence : localhost
est rapide, comme on peut s'y attendre, et test.local
délais.
A ce stade, je pense qu'il y a un problème de DNS. C'est-à-dire, /etc/hosts
n'est PAS consulté en premier, c'est-à-dire que mon DNS amont est vérifié, ce qui échoue, puis /etc/hosts
est consulté, ce qui fonctionne enfin.
Est-ce possible ? Est-ce que OS X Lion
en consultant en quelque sorte mon /etc/hosts
plus tard dans la chaîne des résolveurs ?