Maison >Problème commun >La différence entre le protocole http et le protocole TCP

La différence entre le protocole http et le protocole TCP

(*-*)浩
(*-*)浩original
2019-06-03 10:53:0421636parcourir

Le protocole TCP correspond à la couche transport, tandis que le protocole HTTP correspond à la couche application. En substance, les deux ne sont pas comparables. Le protocole HTTP est basé sur le protocole TCP. Lorsque le navigateur a besoin d'obtenir des données de page Web auprès du serveur, il émet une requête HTTP.

La différence entre le protocole http et le protocole TCP

Http établira un canal de connexion au serveur via TCP Lorsque les données requises pour cette demande seront complétées, Http déconnectera immédiatement la connexion TCP. est très court. Par conséquent, la connexion HTTP est une connexion courte et une connexion sans état. Ce qu'on appelle sans état signifie que chaque fois que le navigateur initie une requête au serveur, il n'établit pas de connexion, mais établit à chaque fois une nouvelle connexion. S'il s'agit d'une connexion, le processus serveur peut maintenir la connexion et mémoriser l'état de certaines informations dans la mémoire. Une fois chaque requête terminée, la connexion est fermée et le contenu concerné est publié, donc aucun état n'est mémorisé et la connexion devient sans état.

Cours recommandé : Tutoriel PHP.

Au fil du temps, la page HTML devient plus complexe et de nombreuses images peuvent y être intégrées. À l'heure actuelle, il est inefficace d'établir une connexion TCP à chaque fois que vous accédez à l'image. C'est pourquoi Keep-Alive a été proposé pour résoudre le problème de la faible efficacité. À partir de HTTP/1.1, Keep-Alive est activé par défaut pour conserver la fonctionnalité de connexion. En termes simples, lorsqu'une page Web est ouverte, la connexion TCP utilisée pour transmettre les données HTTP entre le client et le serveur ne sera pas fermée. client Lorsque vous visitez à nouveau la page Web sur ce serveur, vous continuerez à utiliser cette connexion établie. Keep-Alive ne maintient pas la connexion en permanence. Il a une durée de rétention qui peut être définie dans différents logiciels serveur (tels qu'Apache).

Bien que la connexion TCP soit maintenue ici pendant un certain temps, cette durée est limitée et sera toujours fermée à ce moment-là, nous la considérons donc également comme une fermeture une fois chaque connexion terminée. Plus tard, grâce aux sessions, aux cookies et à d'autres technologies associées, le statut de certains utilisateurs peut également être conservé. Mais il utilise toujours une connexion à chaque fois et il s’agit toujours d’une connexion sans état.

Il y avait un concept sur lequel je ne pouvais pas tolérer d'être confus. Est-ce pour cela que Http est une connexion courte sans état et TCP est une connexion longue avec état ? HTTP n'est-il pas basé sur TCP ? Pourquoi peut-il toujours s'agir d'une connexion courte ?

Maintenant, je comprends que HTTP ferme la connexion TCP une fois chaque requête terminée, il s'agit donc d'une connexion courte. Lorsque nous utilisons le protocole TCP directement via la programmation Socket, parce que nous pouvons contrôler quand ouvrir et fermer la connexion via la zone de code, tant que nous ne fermons pas la connexion via le code, la connexion sera en cours de processus par le client et serveur. Il existe toujours et les données d’état pertinentes seront toujours enregistrées.

HTTP est un protocole orienté objet appartenant à la couche application. De par sa méthode simple et rapide, HTTP convient aux systèmes d'information hypermédia distribués. Il a été proposé en 1990 et a été continuellement amélioré et étendu après plusieurs années d'utilisation et de développement. La sixième version de HTTP/1.0 est actuellement utilisée sur le Web. Les travaux de normalisation de HTTP/1.1 sont en cours et la proposition HTTP-NG (Next Generation of HTTP) a été avancée.
Les principales fonctionnalités du protocole HTTP peuvent être résumées comme suit :
1. Prise en charge du mode client/serveur.
2. Simple et rapide : Lorsqu'un client demande un service au serveur, il lui suffit de transmettre la méthode et le chemin de la requête. Les méthodes de requête couramment utilisées sont GET, HEAD et POST. Chaque méthode spécifie un type différent de contact entre le client et le serveur. En raison de la simplicité du protocole HTTP, la taille du programme du serveur HTTP est petite et la vitesse de communication est très rapide.
3. Flexible : HTTP permet la transmission de tout type d’objet de données. Le type en cours de transfert est marqué par Content-Type.
4. Aucune connexion : Le sens de l'absence de connexion est de limiter chaque connexion à une seule demande. Une fois que le serveur a traité la demande du client et reçu la réponse du client, il se déconnecte. Cette méthode permet de gagner du temps de transmission.
5. Sans état : Le protocole HTTP est un protocole sans état. Sans état signifie que le protocole n'a aucune capacité de mémoire pour le traitement des transactions. L'absence de statut signifie que si un traitement ultérieur nécessite les informations précédentes, celles-ci doivent être retransmises, ce qui peut entraîner une augmentation de la quantité de données transférées par connexion. En revanche, le serveur répond plus rapidement lorsqu’il n’a pas besoin d’informations préalables.

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn