Si je saisis une adresse IP pour un site Web plutôt que sous la forme d'une chaîne, mon serveur DNS local le comprend-il et vais-je contourner le processus DNS? [dupliquer]


12

Cette question a déjà une réponse ici:

Ceci est purement par curiosité. Mais si je devais taper l'adresse IP d'un site Web, la demande serait-elle toujours soumise au processus de recherche prospective? Sinon, à quel moment et à quelle étape se rend-il compte qu'il s'agit de l'emplacement par IP et non par un nom d'hôte sous forme de chaîne?

Aussi, comment cela serait-il enregistré dans mon fichier hôte? S'il suit l'intégralité du processus de recherche, le fichier hôte contiendra-t-il la chaîne nom_hôte ainsi que l'adresse IP et renseignera-t-il localement?


1
Domain Name System, c’est ce qui traduit une adresse URL (google.com) en adresse IP. Ainsi, si vous utilisez une adresse IP, il n’est pas nécessaire de rechercher un nom, en contournant le système DNS. en.wikipedia.org/wiki/Domain_Name_System
Moab

Les réponses ci-dessous sont correctes, les navigateurs sont suffisamment intelligents pour ne pas effectuer de recherche directe d'une adresse IP. Effectuer une recherche directe d'une adresse IP n'est jamais une bonne idée. Un serveur DNS peut réagir de trois manières différentes: 1) La plupart des serveurs DNS renverront simplement la même adresse IP. 2) Les autres serveurs DNS ne peuvent pas résoudre le "nom DNS" en une adresse IP et vous le diront. 3) Certains serveurs DNS (gratuits) ne peuvent pas résoudre le "nom DNS" et vous attribuer une adresse IP qui vous redirige vers leur propre page de recherche (généralement complète d'annonces).
user1793963

1
Le nom de domaine est nécessaire si le serveur Web héberge plusieurs sites. Il a une adresse IP unique et sans nom de domaine, il ne comprend pas quel site vous voulez. S'il n'y a qu'un seul site Web, cela fonctionnera avec IP de la même manière.
i486

1
Notez que le nom d’hôte n’est pas uniquement envoyé à DNS pour traduction, mais également au serveur Web lui-même. Cela signifie qu'un serveur Web qui dessert plusieurs sites Web ne peut pas savoir lequel de ces sites vous souhaitez. Ceci est bien sûr un problème IPv4; avec IPv6, chaque site Web peut avoir sa propre adresse IP.
MSalters

1
Maintenant, la question suivante est la suivante: comment votre navigateur sait-il qu’il 2001:feed:face:dead::beef:8080s’agit d’une adresse IPv6 avec un port spécifié et non pas simplement d’une URL mal formatée ...;)
Mark Henderson

Réponses:


15

Si vous utilisez une adresse IP, le système d'exploitation saura qu'il s'agit d'une adresse IP immédiatement et ne fera pas de recherche en aval.

Lorsque vous effectuez une demande HTTP, la première étape consiste à obtenir l'adresse IP de la destination, afin que le navigateur puisse communiquer avec le serveur. Pour la communication avec le serveur, tout se passe sur IP, d'une adresse IP à une adresse IP, et le nom du serveur n'est donc pas nécessaire pour cette communication. Cependant, il est passé dans les en-têtes HTTP en tant qu'en- Host:tête pour indiquer au serveur Web quel site Web vous recherchez, s'il héberge plusieurs sites.

Dans le cas d'un accès par adresse IP, cela ne se produit pas et le site par défaut est présenté.

Votre hostsfichier est un fichier statique, il ne change pas par aucune action que vous entreprenez, sauf si vous le modifiez directement (ou si vous avez des scripts ou des applications qui le modifient).


2
Il est également intéressant de noter que si vous entrez l'adresse IP dans un navigateur tel que Chrome, il est possible que Google effectue une recherche avant de simplement charger le site.
Sventechie

1
Notez que la liaison interne des objets individuels qui composent la page est probablement effectuée par le nom de domaine complet. Par conséquent, la demande racine s'exécutera sans la recherche DNS, mais chaque image, feuille de style, fichier de script, etc. sera presque certainement résolu par DNS. demande lorsque votre navigateur tente de restituer la page racine et télécharge toutes les ressources enfants ..
Frank Thomas

2
@FrankThomas Dans la plupart des cas, lorsque l'actif se trouve sur le même serveur, les actifs sont référencés par des URL relatives et sont donc accessibles via la même méthode que la requête d'origine - via IP. L'exception à ceci serait où base_href est utilisé dans les en-têtes, et dicte donc l'hôte que les URL relatives doivent utiliser. Si un nom de domaine complet est utilisé, alors oui, la partie est terminée.
Paul

In the case of accessing by IP address, this does not happen, and the default site is presented.Vous aurez beaucoup plus de chances de recevoir une page d'erreur.
User112638726

@sventechie vraiment? Une idée pourquoi ça ferait ça? Comme, quelle est la valeur de cela?
Patrik Alienus

3

Comme d'autres l'ont écrit, en utilisant une adresse IP, vous sautez effectivement le DNS qui permet d'accéder par exemple à des sites de développement sans nom d'hôte.

L’ajout d’un nom d’hôte fictif dans / etc / hosts est extrêmement courant pour les sites de développement. Contrairement à l'utilisation directe de l'adresse IP, cela a) continuera à éviter le DNS b) obligera le navigateur à ajouter l'en- Hosttête de la requête à la requête HTTP autorisant les hôtes virtuels sur un serveur local, par exemple.


Il convient de noter que si, pour une raison quelconque, l'adresse IP est mise à jour, le fichier HOSTS n'est pas mis à jour, ce qui peut entraîner un comportement inattendu et un site qui semble ne plus fonctionner. L'examen du fichier hosts est l'une des dernières choses que les gens font pour résoudre un problème et peut être totalement ignoré.
LPChip

@LPChip fair, mais veuillez noter que j’ai souligné à plusieurs reprises que c’était davantage un développeur - une pratique locale qu’autre chose.
chx
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.