Les requêtes HTTP⚓
Wikipédia :
"Le Hypertext Transfer Protocol, plus connu sous l'abréviation HTTP, littéralement le « protocole de transfert hypertexte », est un protocole de communication client-serveur développé pour le World Wide Web. Il est utilisé pour échanger toute sorte de données entre client HTTP et serveur HTTP."

Ici dans le cadre du transfert d'une page web en html (une grande partie de son utilisation) un protocole (une sorte de langage) appelé HTTP est mis en œuvre. Le client fait une requête au serveur qui renvoie sa réponse
Synthaxe des requêtes client :⚓
Synthaxe des requêtes client :
Ligne de commande (Commande, URL, Version de protocole)
En-tête de requête
<nouvelle ligne>
Corps de requête
Commande peut prendre différentes valeurs :
GET
C'est la méthode la plus courante pour demander une ressource. Une requête GET est sans effet sur la ressource, il doit être possible de répéter la requête sans effet.
HEAD
Cette méthode ne demande que des informations sur la ressource, sans demander la ressource elle-même.
POST
Cette méthode doit être utilisée lorsqu'une requête modifie la ressource.
OPTIONS
Cette méthode permet d'obtenir les options de communication d'une ressource ou du serveur en général.
CONNECT
Cette méthode permet d'utiliser un proxy comme un tunnel de communication.
TRACE
Cette méthode demande au serveur de retourner ce qu'il a reçu, dans le but de tester et d'effectuer un diagnostic sur la connexion.
PUT
Cette méthode permet d'ajouter une ressource sur le serveur.
DELETE
Cette méthode permet de supprimer une ressource du serveur.
C'est la méthode la plus courante pour demander une ressource. Une requête GET est sans effet sur la ressource, il doit être possible de répéter la requête sans effet.
HEAD
Cette méthode ne demande que des informations sur la ressource, sans demander la ressource elle-même.
POST
Cette méthode doit être utilisée lorsqu'une requête modifie la ressource.
OPTIONS
Cette méthode permet d'obtenir les options de communication d'une ressource ou du serveur en général.
CONNECT
Cette méthode permet d'utiliser un proxy comme un tunnel de communication.
TRACE
Cette méthode demande au serveur de retourner ce qu'il a reçu, dans le but de tester et d'effectuer un diagnostic sur la connexion.
PUT
Cette méthode permet d'ajouter une ressource sur le serveur.
DELETE
Cette méthode permet de supprimer une ressource du serveur.
URL c'est l'adresse de la page sur le serveur, par exemple : /partie1/partie1.html
Version de protocole par exemple : HTTP/1.1
Exemple : Ligne de commande
GET /partie1/partie1.html HTTP/1.1
Entêtes : Ce champ comprends des information sur les données transportées. Il est sous la forme :
Nom : Valeur
Exemples :
Host: www.site.com | Spécifie le nom du site |
Cookie: nom-cookie=valeur | Permet d'envoyer au serveur les cookies qui ont été enregistrés. Un cookie à toujours un nom et une valeur. |
Connection: Close|Keep-Alive | Définit le type de connexion : Close : la connexion est fermée après la réponse Keep-Alive : crée une connexion persistante. Avec ce type de connexion, il est même possible d'envoyer une requête sans attendre la réponse à la précédente. |
Content-type: application/x-www-form-urlencoded | Spécifie le type MIME du corps de requête, il sera très utile dans le cas d'une requête POST. |
Content-Length: 42 | Spécifie la longueur du corps de requête. |
Corps : Pour terminer la requête, on envoie le corps de requête. Il peut contenir, par exemple, le contenu d'un formulaire HTML envoyé en POST.
Dans le cas du formulaire, les variables ont un nom et une valeur, comme l'en-tête Cookie, et les différentes variables sont séparées par des esperluettes : "&" (notez que les variables passées par GET sont également séparées par "&").
Exemple : GET est la méthode permettant de récupérer le contenu d'un fichier.
GET /fichier.ext HTTP/1.1
Host: www.site.com
Connection: Close
<nouvelle ligne>
Les réponses du serveur⚓
Syntaxe :
Ligne de statut (Version, Code-réponse, Texte-réponse)
En-tête de réponse
<nouvelle ligne>
Corps de réponse
Ligne de statut
La ligne de statut est composée de :
Version : la version HTTP du serveur
Code-réponse : le code d'erreur retourné (par exemple 200, 403, 404, 500)
Texte-réponse : le texte associé à l'erreur (respectivement pour les exemples précédents : "OK", "FORBIDDEN", "NOT FOUND", "INTERNAL ERROR").
En-têtes
Les en-têtes quelques-uns utiles :
Date: Fri, 31 Dec 1999 23:59:59 GMT
Date de génération de la réponse.
Server: Apache/2.2.3
Spécifie le modèle du serveur HTTP.
Content-type: text/plain
cf. chapitre précédent.
Content-Length: 42
cf. chapitre précédent.
Set-Cookie: variable=valeur; expires=Fri, 31-Dec-2010 23:59:59 GMT; path=/; domain=.site.com
Demande au navigateur d'enregistrer un cookie (voir setcookie()).
Corps
Il contient le contenu du fichier, le HTML d'une page par exemple.