Maison >développement back-end >tutoriel php >Explication détaillée des exemples de protocole HTTP

Explication détaillée des exemples de protocole HTTP

小云云
小云云original
2018-03-12 15:25:002832parcourir

HTTP est un protocole de couche application, composé de requêtes et de réponses, et constitue un modèle de service client standard. HTTP est généralement transporté sur le protocole TCP, et parfois sur la couche de protocole TLS ou SSL. À l'heure actuelle, il est communément appelé HTTPS. Le numéro de port par défaut pour HTTP est 80 et le numéro de port pour HTTPS est 443.


L'inconvénient est que le serveur ne poussera pas activement le client

L'application du protocole SPDY nécessite un navigateur client et serveur Les deux terminaux sont pris en charge en même temps. Optimise la communication entre le navigateur et le serveur, prend en charge le multiplexage des flux, priorise les requêtes, lance les requêtes de manière proactive, force la transmission sécurisée SSL et d'autres fonctionnalités avancées

4.1.2 Comment fonctionne le protocole HTTP

La navigation sur le Web est la principale application du protocole HTTP. Une opération HTTP est appelée une transaction

1 Le client doit établir une connexion avec le serveur et cliquer sur un lien hypertexte. les travaux commencent.

2 Après avoir établi la connexion, le client envoie une requête au serveur.

3 Une fois que le serveur a reçu la requête, il donne les informations de réponse correspondantes

4 Le client reçoit les informations renvoyées par le serveur et les affiche sur l'écran de l'utilisateur, puis le client se déconnecte de le serveur

Quelques concepts principaux du protocole HTTP

1 Requête

La requête HTTP se compose de trois parties : en-tête de requête, en-tête de requête, corps de requête

Ligne de requête : Méthode Request-URL HTTP-Version CRLF

Méthode : Méthode de requête (GET, POST, HEAD, PUT, DELETE, TRACE, CONNECT, OPTIONS)

URL de requête : un identifiant de ressource uniforme

Version HTTP : la version du protocole HTTP demandée

CRLF : retour chariot et saut de ligne

2 Réponses

La réponse HTTP se compose également de trois parties : ligne d'état, en-tête de message, corps de la réponse

Ligne d'état : Statut de la version HTTP -Code Reason-Phrase CRLF

Version HTTP : Version du protocole HTTP du serveur

Status-Code : Code d'état de réponse renvoyé par le serveur

Phrase de raison : description textuelle du code d'état

Le code d'état se compose de trois chiffres et de cinq valeurs possibles

1XX : informations d'indication - la demande a a été reçu, continuez le traitement

2XX : Succès --la demande a été reçue, comprise et acceptée avec succès

3XX : Redirection --d'autres opérations doivent être effectuées pour terminer la demande

4XX : Erreur du client --La demande contient une erreur de syntaxe ou la demande ne peut pas être satisfaite

5XX : Erreur du serveur --Le serveur n'a pas réussi à répondre à une demande légitime

Codes d'état courants et descriptions de statut

200 OK : la demande du client a réussi

400 mauvaise demande : la demande du client a une erreur de syntaxe et ne peut pas être traité Ce que le serveur comprend

401 Unauthorize : La demande n'est pas autorisée, ce code d'état doit être utilisé avec l'en-tête WWW Authenticate

403 Interdit : Le serveur a reçu la demande, mais a refusé de la fournir. Service

404 Non trouvé : La ressource demandée n'existe pas, par exemple, une URL incorrecte a été saisie

500 Erreur de serveur interne : une erreur inattendue s'est produite sur le serveur

503 Serveur indisponible : Le serveur est actuellement incapable de traiter la demande du client et peut revenir à la normale après un certain temps

3 en-têtes

Les en-têtes de message HTTP incluent les en-têtes ordinaires, l'en-tête de requête, l'en-tête de réponse, l'en-tête d'entité

1 Il y a quelques champs d'en-tête dans l'ordinaire en-tête qui sont utilisés pour tous les messages de requête et de réponse, mais ne sont pas utilisés pour l'entité transmise, uniquement pour le message transmis (Contrôle du cache, contrôle de connexion)

2 L'en-tête de requête permet au client de passer informations complémentaires de la requête au serveur ainsi que les informations propres au client (en-tête UA, Accepter)

3 L'en-tête de réponse permet au serveur de transmettre des informations de réponse supplémentaires qui ne peuvent pas être placées dans la ligne d'état, ainsi que des informations sur le serveur et des informations sur le prochain accès à la ressource identifiée par l'URL de la requête (emplacement)

4 L'en-tête d'entité définit des méta-informations sur le corps de l'entité et la ressource identifiée par la requête, par exemple s'il existe un corps d'entité

Plusieurs en-têtes importants :

Hôte Le champ :header spécifie l'hôte Internet et le numéro de port de la ressource demandée, et doit indiquer l'emplacement du serveur ou de la passerelle d'origine de l'URL demandée.

User Agent : UA en abrégé, le contenu contient les informations de l'utilisateur qui a fait la demande. Contient généralement les informations du spectateur, principalement le nom de la version du navigateur et le système d'exploitation utilisé

Accepter : indique au serveur quels formats de fichiers sont acceptables. Habituellement, cette valeur est similaire sur tous les navigateurs.

Cookie : Il en existe deux types : l'un est envoyé par le client au serveur à l'aide de l'en-tête Cookie, qui peut avoir plusieurs valeurs, et l'autre est envoyé par le serveur au navigateur avec l'en-tête Définir le cookie. Il ne peut y avoir qu'une seule valeur, vous devez spécifier le domaine, le chemin

Contrôle du cache : Spécifiez le mécanisme de mise en cache suivi de la demande et de la réponse. La définition du contrôle du cache dans un message de demande ou un message de réponse ne modifie pas le processus de traitement du cache dans un autre message. Les instructions de cache incluent No Cache, No Store, Max Age, Max State, No Transform, Must Revalidate, Proxy Revalidate, MAX Age

Referer : le domaine principal permet au client de spécifier la ressource source de l'URL de la demande. . L'adresse, qui permet au serveur de générer une liste de liens de secours pour l'optimisation de la connexion et du cache, est généralement un paramètre utilisé par le système de statistiques de trafic pour enregistrer l'adresse du visiteur


Longueur du contenu : Longueur du contenu


. 🎜>


Plage de contenu : la plage de ressources de la réponse. La plage de ressources demandée peut être marquée dans chaque requête. Lorsque la connexion est déconnectée et reconnectée, le client demande uniquement la partie non téléchargée de la ressource au lieu de redemander la totalité de la ressource pour implémenter la reprise du point d'arrêt. C'est le principe de Xunlei, qui utilise le multi-threading pour lire les ressources des idiotes sur Internet par sections, et finalement les fusionne


Accepter l'encodage : précise la méthode d'encodage qui peut être reçue


🎜>

En-têtes personnalisés : dans les messages http, vous pouvez également utiliser certains champs d'en-tête qui ne sont pas définis dans les spécifications formelles de http1.1.

Recommandations associées :

Résumé de l'utilisation du protocole HTTP utilisé dans les en-têtes en php

Analyse approfondie du protocole HTTP

Introduction et compréhension approfondie du protocole HTTP

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