Maison >interface Web >js tutoriel >Une introduction au processus spécifique depuis la saisie de l'URL dans le navigateur jusqu'au lancement d'une requête http.

Une introduction au processus spécifique depuis la saisie de l'URL dans le navigateur jusqu'au lancement d'une requête http.

不言
不言avant
2018-11-20 15:12:292939parcourir

Ce que cet article vous apporte est une introduction au processus spécifique de saisie d'une URL dans le navigateur et de lancement d'une requête http. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. toi.

L'utilisateur entre l'URL

Lorsque l'utilisateur entre l'URL, le système d'exploitation transmet l'événement d'entrée au navigateur. Au cours de ce processus, le système d'exploitation transmet l'événement d'entrée au navigateur. Le navigateur peut effectuer un prétraitement. Par exemple, Chrome estimera le site Web correspondant au caractère saisi sur la base de statistiques historiques. Par exemple, si vous entrez Google, il sera constaté qu'il y a une probabilité de 90 % de visiter "www.google. com" basé sur l'historique précédent, il sera donc renvoyé après la saisie. La connexion TCP et même le rendu ont commencé immédiatement devant la voiture.

Ensuite, entrez l'URL et cliquez sur Entrée. À ce moment, le navigateur vérifiera d'abord le protocole. S'il s'agit de http, il sera traité selon le Web. être vérifié pour la sécurité

Une fois le contrôle de sécurité terminé, le noyau du navigateur vérifiera d'abord le cache, puis définira UA et d'autres informations HTTP, puis appellera la méthode de requête réseau sous différentes plates-formes.

Remarque :
Le navigateur et le noyau du navigateur sont des concepts différents. Le navigateur fait référence à Chrome et Firefox, tandis que le noyau du navigateur fait référence à Blink et au noyau du navigateur. Il est uniquement responsable du rendu, le travail multiplateforme tel que l'interface graphique et la connexion réseau est implémenté par le navigateur

demande réseau http

Requête IP via DNS ;
Envoyer des données via Socket

requête DNS ip

DNS, Domain Name System en anglais et Domain Name System en chinois, est un service d'Internet. Il s'agit d'une base de données distribuée qui mappe les noms de domaine et les adresses IP les uns aux autres

Assomption. L'utilisateur saisit www.google.com dans le navigateur. Le processus approximatif est le suivant :

Si l'entrée est un nom de domaine, une requête DNS est requise pour résoudre le nom de domaine en IP ; > Effectuer une requête DNS L'hôte ou le logiciel est appelé un résolveur DNS, et le poste de travail ou l'ordinateur utilisé par l'utilisateur est un résolveur. La résolution de nom de domaine est le processus d'utilisation d'un résolveur DNS pour obtenir l'adresse IP correspondante. Le résolveur interrogera le serveur de noms de domaine pour le traitement.

Le processus principal est le suivant :

    Trouver l'adresse IP du nom de domaine www.google.com depuis le cache du navigateur
  1. S'il n'est pas trouvé dans le cache du navigateur, recherchez-le dans le cache du système d'exploitation. Dans cette étape, vous rechercherez également les hôtes locaux pour voir s'il existe un mappage de nom de domaine correspondant (bien sûr, il a été mis en cache). dans le cache DNS du système)
  2. S'il n'est pas trouvé dans le système, rendez-vous sur votre routeur pour le trouver, car le routeur a généralement son propre cache DNS
  3. Si aucun des éléments ci-dessus n'est trouvé, continuez à interroger le serveur de noms de domaine DNS

    Le résolveur de l'ordinateur de l'utilisateur initie une demande de résolution de nom de domaine à LDNS ( c'est-à-dire DNS local, fournisseur d'accès Internet FAI) et interroge l'adresse IP de www.google. com, il s'agit d'un processus de recherche récursif
  • Lorsque le cache n'atteint pas, LDNS interroge la racine. serveur de nom de domaine pour l'adresse IP de www.google.com, requête LDNS Le processus est un processus de requête itératif
  • La racine indique à LDNS que je ne connais pas l'IP correspondant à www .google.com, mais je sais que vous pouvez demander au serveur d'autorisation du domaine com. Ce domaine appartient à Il gère
  • LDNS demande au serveur d'autorisation de com l'adresse IP correspondant à www. .google.com
  • com indique à LDNS, je ne connais pas l'adresse IP correspondante de www .google.com, mais je sais que vous pouvez demander au serveur d'autorisation du domaine google.com ceci. le domaine est géré par lui
  • LDNS demande au serveur d'autorisation de google.com www.L'adresse IP correspondant à google.com
  • google. com interroge son propre fichier ZONE (également appelé enregistrement de fichier de zone), trouve l'adresse IP correspondant à www.google.com et la renvoie à LDNS
  • LDNS met en cache un enregistrement localement et renvoie le résultat à l'analyseur de l'ordinateur de l'utilisateur
  • Après cela, l'analyseur de l'ordinateur de l'utilisateur obtient Une fois le résultat obtenu, il est mis en cache dans le cache DNS de votre propre système d'exploitation et renvoyé au navigateur. Le navigateur le mettra toujours en cache pendant un certain temps.
Remarque

, La requête de nom de domaine peut passer par le planificateur CDN (s'il existe une fonction de stockage cdn)
Et , vous devez savoir que la résolution DNS prend beaucoup de temps, donc si vous résolvez trop de noms de domaine, le premier chargement d'écran sera trop lent. Vous pouvez envisager une optimisation DNS-prefetch

requête tcp/ip

Avec l'adresse IP, les données peuvent être envoyées via l'API Socket. À ce stade, le protocole TCP ou UDP peut être sélectionné.

http est essentiellement un protocole TCP.

TCP est un protocole de couche transport orienté connexion. Il peut garantir que la communication entre les hôtes de communication aux deux extrémités (extrémité émettrice et extrémité réceptrice) est accessible. Il peut gérer des situations anormales telles que la perte de paquets pendant la transmission et un ordre de transmission désordonné. En outre, il peut utiliser efficacement le haut débit pour réduire la congestion du réseau.

L'établissement d'une connexion TCP nécessite trois poignées de main au début :

La première poignée de main, demandant l'établissement d'une connexion, l'expéditeur envoie un message de demande de connexion

La deuxième poignée de main, le destinataire reçoit Au message envoyé par l'expéditeur, on peut voir que l'expéditeur souhaite maintenant établir une connexion. Ensuite, l'extrémité réceptrice enverra un message à l'extrémité émettrice

pour la troisième poignée de main. Une fois que l'extrémité émettrice aura reçu le message envoyé, elle doit vérifier si le contenu renvoyé est correct, l'envoi ; end le fera à nouveau Envoyer un paquet de confirmation

Une fois la connexion TCP établie, vous pouvez envoyer une requête HTTP.

Remarque
Les navigateurs ont une limite sur le nombre de connexions pour un même nom de domaine, la plupart étant au nombre de 6. Dans http1.0, un téléchargement de ressource doit souvent correspondre à un tcp/ requête ip, mais comme HTTP 2.0 Bien que le protocole n'utilise qu'une seule connexion TCP pour transmettre les données, ses performances sont meilleures et il peut également implémenter la priorité des requêtes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer