pdf - Bienvenue sur le site de Jean-Baptiste Vioix

Transcription

pdf - Bienvenue sur le site de Jean-Baptiste Vioix
Programmation du Web : Présentation du protocole
HTTP
Jean-Baptiste Vioix
([email protected])
IUT de Dijon-Auxerre - LE2I
http://jb.vioix.free.fr
1-14
Le protocole HTTP
Présentation générale
Le protocole HTTP : présentation générale
Le protocole HTTP (Hypertext Transfer Protocol ) est un protocole
de communication qui a été développé pour le web.
Différents logiciels utilisent HTTP :
différents logiciels clients comme les navigateurs web, les robots
d’indexation, les aspirateurs de site. . .
les logiciels serveurs peuvent être Apache, IIS. . .
La liaison entre le client et le serveur peut être direct ou via un
serveur mandataire (proxy ), une passerelle (gateway ),. . .
http://jb.vioix.free.fr
2-14
Le protocole HTTP
Présentation générale
Le protocole HTTP : présentation générale
Le protocole HTTP (Hypertext Transfer Protocol ) est un protocole
de communication qui a été développé pour le web.
Différents logiciels utilisent HTTP :
différents logiciels clients comme les navigateurs web, les robots
d’indexation, les aspirateurs de site. . .
les logiciels serveurs peuvent être Apache, IIS. . .
La liaison entre le client et le serveur peut être direct ou via un
serveur mandataire (proxy ), une passerelle (gateway ),. . .
http://jb.vioix.free.fr
2-14
Le protocole HTTP
Présentation générale
Le protocole HTTP : présentation générale
Le protocole HTTP (Hypertext Transfer Protocol ) est un protocole
de communication qui a été développé pour le web.
Différents logiciels utilisent HTTP :
différents logiciels clients comme les navigateurs web, les robots
d’indexation, les aspirateurs de site. . .
les logiciels serveurs peuvent être Apache, IIS. . .
La liaison entre le client et le serveur peut être direct ou via un
serveur mandataire (proxy ), une passerelle (gateway ),. . .
http://jb.vioix.free.fr
2-14
Le protocole HTTP
Présentation générale
Le protocole HTTP : présentation générale
Le protocole HTTP (Hypertext Transfer Protocol ) est un protocole
de communication qui a été développé pour le web.
Différents logiciels utilisent HTTP :
différents logiciels clients comme les navigateurs web, les robots
d’indexation, les aspirateurs de site. . .
les logiciels serveurs peuvent être Apache, IIS. . .
La liaison entre le client et le serveur peut être direct ou via un
serveur mandataire (proxy ), une passerelle (gateway ),. . .
http://jb.vioix.free.fr
2-14
Le protocole HTTP
Présentation générale
Le protocole HTTP : présentation générale
Le protocole HTTP (Hypertext Transfer Protocol ) est un protocole
de communication qui a été développé pour le web.
Différents logiciels utilisent HTTP :
différents logiciels clients comme les navigateurs web, les robots
d’indexation, les aspirateurs de site. . .
les logiciels serveurs peuvent être Apache, IIS. . .
La liaison entre le client et le serveur peut être direct ou via un
serveur mandataire (proxy ), une passerelle (gateway ),. . .
http://jb.vioix.free.fr
2-14
Le protocole HTTP
Présentation générale
Le protocole HTTP : présentation générale
La première version du protocole était très simple : le client se
connecte et demande une ressource (GET), le serveur lui repond, la
connexion est fermée.
Aucune autre donnée n’est envoyée ou reçue.
HTTP 1.0 (puis HTTP 1.1) on été crées pour enrichir les possibilités
de ce protocole.
Plusieurs requêtes sont possibles, des données complémentaires
peuvent être envoyées par le client ou par le serveur.
http://jb.vioix.free.fr
3-14
Le protocole HTTP
Présentation générale
Le protocole HTTP : présentation générale
La première version du protocole était très simple : le client se
connecte et demande une ressource (GET), le serveur lui repond, la
connexion est fermée.
Aucune autre donnée n’est envoyée ou reçue.
HTTP 1.0 (puis HTTP 1.1) on été crées pour enrichir les possibilités
de ce protocole.
Plusieurs requêtes sont possibles, des données complémentaires
peuvent être envoyées par le client ou par le serveur.
http://jb.vioix.free.fr
3-14
Le protocole HTTP
Présentation générale
Le protocole HTTP : présentation générale
La première version du protocole était très simple : le client se
connecte et demande une ressource (GET), le serveur lui repond, la
connexion est fermée.
Aucune autre donnée n’est envoyée ou reçue.
HTTP 1.0 (puis HTTP 1.1) on été crées pour enrichir les possibilités
de ce protocole.
Plusieurs requêtes sont possibles, des données complémentaires
peuvent être envoyées par le client ou par le serveur.
http://jb.vioix.free.fr
3-14
Le protocole HTTP
Présentation générale
Le protocole HTTP : présentation générale
La première version du protocole était très simple : le client se
connecte et demande une ressource (GET), le serveur lui repond, la
connexion est fermée.
Aucune autre donnée n’est envoyée ou reçue.
HTTP 1.0 (puis HTTP 1.1) on été crées pour enrichir les possibilités
de ce protocole.
Plusieurs requêtes sont possibles, des données complémentaires
peuvent être envoyées par le client ou par le serveur.
http://jb.vioix.free.fr
3-14
Le protocole HTTP
Syntaxe
Le protocole HTTP : syntaxe des requêtes (HTTP 1.0 et
HTTP 1.1)
Les deux versions sont très proches dans la syntaxe.
Commande URL version ( HTTP /1.0 ou HTTP /1.1)
En - t^
e te de requ^
e te
Corps de requ^
e te
Les commandes les plus utilisées sont : GET et POST.
L’entête de requête contient des informations sous la forme Nom :
valeur.
HTTP 1.1 ajoute le maintient de la connexion entre les requêtes
(permet d’envoyer plusieurs requêtes sans attendre la réponse,
diminution de la charge du réseau,. . . ).
http://jb.vioix.free.fr
4-14
Le protocole HTTP
Syntaxe
Le protocole HTTP : syntaxe des requêtes (HTTP 1.0 et
HTTP 1.1)
Les deux versions sont très proches dans la syntaxe.
Commande URL version ( HTTP /1.0 ou HTTP /1.1)
En - t^
e te de requ^
e te
Corps de requ^
e te
Les commandes les plus utilisées sont : GET et POST.
L’entête de requête contient des informations sous la forme Nom :
valeur.
HTTP 1.1 ajoute le maintient de la connexion entre les requêtes
(permet d’envoyer plusieurs requêtes sans attendre la réponse,
diminution de la charge du réseau,. . . ).
http://jb.vioix.free.fr
4-14
Le protocole HTTP
Syntaxe
Le protocole HTTP : syntaxe des requêtes (HTTP 1.0 et
HTTP 1.1)
Les deux versions sont très proches dans la syntaxe.
Commande URL version ( HTTP /1.0 ou HTTP /1.1)
En - t^
e te de requ^
e te
Corps de requ^
e te
Les commandes les plus utilisées sont : GET et POST.
L’entête de requête contient des informations sous la forme Nom :
valeur.
HTTP 1.1 ajoute le maintient de la connexion entre les requêtes
(permet d’envoyer plusieurs requêtes sans attendre la réponse,
diminution de la charge du réseau,. . . ).
http://jb.vioix.free.fr
4-14
Le protocole HTTP
Syntaxe
Le protocole HTTP : syntaxe des requêtes (HTTP 1.0 et
HTTP 1.1)
Les deux versions sont très proches dans la syntaxe.
Commande URL version ( HTTP /1.0 ou HTTP /1.1)
En - t^
e te de requ^
e te
Corps de requ^
e te
Les commandes les plus utilisées sont : GET et POST.
L’entête de requête contient des informations sous la forme Nom :
valeur.
HTTP 1.1 ajoute le maintient de la connexion entre les requêtes
(permet d’envoyer plusieurs requêtes sans attendre la réponse,
diminution de la charge du réseau,. . . ).
http://jb.vioix.free.fr
4-14
Le protocole HTTP
Syntaxe
Le protocole HTTP : syntaxe des réponses (HTTP 1.0 et
HTTP 1.1)
Le serveur répond en envoyant d’abord un code de résultat suivit de
plusieurs éléments d’information.
Une ligne précède ensuite les données demandées (ou un message
d’erreur).
Les codes d’erreurs sont organisé par catégorie de réponse :
Succès (200 OK,. . . ),
Redirection (301 ressource déplacée de manière permanente, 302
ressource déplacée de manière temporaire,. . . )
Erreur du client (403 traitement refusé, 404 document non trouvé,. . . )
Erreur du serveur (500 erreur interne,. . . ).
http://jb.vioix.free.fr
5-14
Le protocole HTTP
Syntaxe
Le protocole HTTP : syntaxe des réponses (HTTP 1.0 et
HTTP 1.1)
Le serveur répond en envoyant d’abord un code de résultat suivit de
plusieurs éléments d’information.
Une ligne précède ensuite les données demandées (ou un message
d’erreur).
Les codes d’erreurs sont organisé par catégorie de réponse :
Succès (200 OK,. . . ),
Redirection (301 ressource déplacée de manière permanente, 302
ressource déplacée de manière temporaire,. . . )
Erreur du client (403 traitement refusé, 404 document non trouvé,. . . )
Erreur du serveur (500 erreur interne,. . . ).
http://jb.vioix.free.fr
5-14
Le protocole HTTP
Syntaxe
Le protocole HTTP : syntaxe des réponses (HTTP 1.0 et
HTTP 1.1)
Le serveur répond en envoyant d’abord un code de résultat suivit de
plusieurs éléments d’information.
Une ligne précède ensuite les données demandées (ou un message
d’erreur).
Les codes d’erreurs sont organisé par catégorie de réponse :
Succès (200 OK,. . . ),
Redirection (301 ressource déplacée de manière permanente, 302
ressource déplacée de manière temporaire,. . . )
Erreur du client (403 traitement refusé, 404 document non trouvé,. . . )
Erreur du serveur (500 erreur interne,. . . ).
http://jb.vioix.free.fr
5-14
Le protocole HTTP
Syntaxe
Le protocole HTTP : syntaxe des réponses (HTTP 1.0 et
HTTP 1.1)
Le serveur répond en envoyant d’abord un code de résultat suivit de
plusieurs éléments d’information.
Une ligne précède ensuite les données demandées (ou un message
d’erreur).
Les codes d’erreurs sont organisé par catégorie de réponse :
Succès (200 OK,. . . ),
Redirection (301 ressource déplacée de manière permanente, 302
ressource déplacée de manière temporaire,. . . )
Erreur du client (403 traitement refusé, 404 document non trouvé,. . . )
Erreur du serveur (500 erreur interne,. . . ).
http://jb.vioix.free.fr
5-14
Le protocole HTTP
Syntaxe
Le protocole HTTP : syntaxe des réponses (HTTP 1.0 et
HTTP 1.1)
Le serveur répond en envoyant d’abord un code de résultat suivit de
plusieurs éléments d’information.
Une ligne précède ensuite les données demandées (ou un message
d’erreur).
Les codes d’erreurs sont organisé par catégorie de réponse :
Succès (200 OK,. . . ),
Redirection (301 ressource déplacée de manière permanente, 302
ressource déplacée de manière temporaire,. . . )
Erreur du client (403 traitement refusé, 404 document non trouvé,. . . )
Erreur du serveur (500 erreur interne,. . . ).
http://jb.vioix.free.fr
5-14
Le protocole HTTP
Syntaxe
Le protocole HTTP : syntaxe des réponses (HTTP 1.0 et
HTTP 1.1)
Le serveur répond en envoyant d’abord un code de résultat suivit de
plusieurs éléments d’information.
Une ligne précède ensuite les données demandées (ou un message
d’erreur).
Les codes d’erreurs sont organisé par catégorie de réponse :
Succès (200 OK,. . . ),
Redirection (301 ressource déplacée de manière permanente, 302
ressource déplacée de manière temporaire,. . . )
Erreur du client (403 traitement refusé, 404 document non trouvé,. . . )
Erreur du serveur (500 erreur interne,. . . ).
http://jb.vioix.free.fr
5-14
Le protocole HTTP
Syntaxe
Le protocole HTTP : syntaxe des réponses (HTTP 1.0 et
HTTP 1.1)
Le serveur répond en envoyant d’abord un code de résultat suivit de
plusieurs éléments d’information.
Une ligne précède ensuite les données demandées (ou un message
d’erreur).
Les codes d’erreurs sont organisé par catégorie de réponse :
Succès (200 OK,. . . ),
Redirection (301 ressource déplacée de manière permanente, 302
ressource déplacée de manière temporaire,. . . )
Erreur du client (403 traitement refusé, 404 document non trouvé,. . . )
Erreur du serveur (500 erreur interne,. . . ).
http://jb.vioix.free.fr
5-14
Le protocole HTTP
Requete GET
Le protocole HTTP : requête GET
La commande GET permet de demander une ressource au serveur.
La syntaxe est la suivante :
GET ressource protocole
Champ : valeur
...
La requête est validée par l’envoi d’une ligne blanche.
Il n’y a normalement pas de corps de la requête.
http://jb.vioix.free.fr
6-14
Le protocole HTTP
Requete GET
Le protocole HTTP : requête GET
La commande GET permet de demander une ressource au serveur.
La syntaxe est la suivante :
GET ressource protocole
Champ : valeur
...
La requête est validée par l’envoi d’une ligne blanche.
Il n’y a normalement pas de corps de la requête.
http://jb.vioix.free.fr
6-14
Le protocole HTTP
Requete GET
Le protocole HTTP : requête GET
La commande GET permet de demander une ressource au serveur.
La syntaxe est la suivante :
GET ressource protocole
Champ : valeur
...
La requête est validée par l’envoi d’une ligne blanche.
Il n’y a normalement pas de corps de la requête.
http://jb.vioix.free.fr
6-14
Le protocole HTTP
Requete GET
Le protocole HTTP : requête GET
La commande GET permet de demander une ressource au serveur.
La syntaxe est la suivante :
GET ressource protocole
Champ : valeur
...
La requête est validée par l’envoi d’une ligne blanche.
Il n’y a normalement pas de corps de la requête.
http://jb.vioix.free.fr
6-14
Le protocole HTTP
Requete GET
Le protocole HTTP : requête GET (exemple)
Exemple du requete GET envoyée par Firefox sur l’url
http://jb.vioix.free.fr
GET / HTTP /1.1
Host : jb . vioix . free . fr
User - Agent : Mozilla /5.0 ( X11 ; U ; Linux i686 ; fr ; rv :1.8.1. 1) ...
Accept : text / xml , application / xml , application / xhtml + xml , text / html ...
...
Keep - Alive : 300
Connection : keep - alive
Cookie : ...
Le client envoie de nombreux éléments en plus de ceux indispensables
comme le navigateur utilisé, le système d’exploitation, les cookies
stockés,. . .
http://jb.vioix.free.fr
7-14
Le protocole HTTP
Requete GET
Le protocole HTTP : requête GET (exemple)
Exemple du requete GET envoyée par Firefox sur l’url
http://jb.vioix.free.fr
GET / HTTP /1.1
Host : jb . vioix . free . fr
User - Agent : Mozilla /5.0 ( X11 ; U ; Linux i686 ; fr ; rv :1.8.1. 1) ...
Accept : text / xml , application / xml , application / xhtml + xml , text / html ...
...
Keep - Alive : 300
Connection : keep - alive
Cookie : ...
Le client envoie de nombreux éléments en plus de ceux indispensables
comme le navigateur utilisé, le système d’exploitation, les cookies
stockés,. . .
http://jb.vioix.free.fr
7-14
Le protocole HTTP
Requete GET
Le protocole HTTP : reponse d’un serveur (exemple sur
une page XHTML)
Résultat de la requete GET envoyée par Firefox sur l’url
http://jb.vioix.free.fr
HTTP /1.1 200 OK
Date : Sat , 20 Jan 2007 10:28:00 GMT
Server : Apache / ProXad [ Dec 3 2006 11:06:18]
X - Powered - By : PHP /4.4.3 - dev
Last - Modified : Thu , 18 Jan 2007 16:13:33 GMT
Connection : close
Content - Type : text / html ; charset = utf -8
<! DOCTYPE html PUBLIC " -// W3C // DTD XHTML 1.0 Strict // EN " ...
< html xmlns =" http :// www . w3 . org /1999/ xhtml " lang = " fr " >
< head >
< meta http - equiv = " Content - Type " content = " text / html ; ...
< meta name = " MSSmartTagsP re ve nt Pa r si ng " ...
< title > Bienvenue sur le site de Jean - Baptiste Vioix </ title >
...
Le serveur envoie quelques éléments dans la réponse (notamment la
date, l’état de la connexion,. . . ) puis le fichier demandé (ici du
XHTML).
http://jb.vioix.free.fr
8-14
Le protocole HTTP
Requete GET
Le protocole HTTP : reponse d’un serveur (exemple sur
une page XHTML)
Résultat de la requete GET envoyée par Firefox sur l’url
http://jb.vioix.free.fr
HTTP /1.1 200 OK
Date : Sat , 20 Jan 2007 10:28:00 GMT
Server : Apache / ProXad [ Dec 3 2006 11:06:18]
X - Powered - By : PHP /4.4.3 - dev
Last - Modified : Thu , 18 Jan 2007 16:13:33 GMT
Connection : close
Content - Type : text / html ; charset = utf -8
<! DOCTYPE html PUBLIC " -// W3C // DTD XHTML 1.0 Strict // EN " ...
< html xmlns =" http :// www . w3 . org /1999/ xhtml " lang = " fr " >
< head >
< meta http - equiv = " Content - Type " content = " text / html ; ...
< meta name = " MSSmartTagsP re ve nt Pa r si ng " ...
< title > Bienvenue sur le site de Jean - Baptiste Vioix </ title >
...
Le serveur envoie quelques éléments dans la réponse (notamment la
date, l’état de la connexion,. . . ) puis le fichier demandé (ici du
XHTML).
http://jb.vioix.free.fr
8-14
Le protocole HTTP
Requete GET
Le protocole HTTP : reponse d’un serveur (exemple sur
image )
Téléchargement d’une image contenue sur un site web, requête
envoyée par le navigateur :
GET / xmedia / recherches / these / Vol2 -71 - source . png HTTP /1.1
...
Résultat de la requete :
HTTP /1.1 200 OK
Date : Sat , 20 Jan 2007 12:04:41 GMT
Server : Apache / ProXad [ Dec 3 2006 11:06:18]
Last - Modified : Tue , 06 Dec 2005 22:22:14 GMT
ETag : " 800664 af -10082 -43960 f16 "
Connection : close
Accept - Ranges : bytes
Content - Length : 65666
Content - Type : image / png
Après une ligne blanches, les données du fichiers sont envoyées de
manière ”brute”.
http://jb.vioix.free.fr
9-14
Le protocole HTTP
Requete GET
Le protocole HTTP : reponse d’un serveur (exemple sur
image )
Téléchargement d’une image contenue sur un site web, requête
envoyée par le navigateur :
GET / xmedia / recherches / these / Vol2 -71 - source . png HTTP /1.1
...
Résultat de la requete :
HTTP /1.1 200 OK
Date : Sat , 20 Jan 2007 12:04:41 GMT
Server : Apache / ProXad [ Dec 3 2006 11:06:18]
Last - Modified : Tue , 06 Dec 2005 22:22:14 GMT
ETag : " 800664 af -10082 -43960 f16 "
Connection : close
Accept - Ranges : bytes
Content - Length : 65666
Content - Type : image / png
Après une ligne blanches, les données du fichiers sont envoyées de
manière ”brute”.
http://jb.vioix.free.fr
9-14
Le protocole HTTP
Requete GET
Le protocole HTTP : reponse d’un serveur (exemple sur
image )
Téléchargement d’une image contenue sur un site web, requête
envoyée par le navigateur :
GET / xmedia / recherches / these / Vol2 -71 - source . png HTTP /1.1
...
Résultat de la requete :
HTTP /1.1 200 OK
Date : Sat , 20 Jan 2007 12:04:41 GMT
Server : Apache / ProXad [ Dec 3 2006 11:06:18]
Last - Modified : Tue , 06 Dec 2005 22:22:14 GMT
ETag : " 800664 af -10082 -43960 f16 "
Connection : close
Accept - Ranges : bytes
Content - Length : 65666
Content - Type : image / png
Après une ligne blanches, les données du fichiers sont envoyées de
manière ”brute”.
http://jb.vioix.free.fr
9-14
Le protocole HTTP
Requete GET
Le protocole HTTP : requête GET
Dans une requête GET les données sont envoyés après le nom de la
ressource demandée suivie d’un ?
GET / search . php ?q = java & s = Search HTTP /1.1
Les variables sont encodés selon le codage
application/x-www-urlencode : les espaces sont remplacés +, les
caractères non aphanumériques (sauf ) sont remplacés par % suivi
d’une valeur héxadécimale, les différentes variables sont séparées par
&.
Dans l’exemple précédent, q vaudra java et s vaudra Search, c’est le
serveur web qui interpretera ces valeurs avant de renvoyer sa réponse.
http://jb.vioix.free.fr
10-14
Le protocole HTTP
Requete GET
Le protocole HTTP : requête GET
Dans une requête GET les données sont envoyés après le nom de la
ressource demandée suivie d’un ?
GET / search . php ?q = java & s = Search HTTP /1.1
Les variables sont encodés selon le codage
application/x-www-urlencode : les espaces sont remplacés +, les
caractères non aphanumériques (sauf ) sont remplacés par % suivi
d’une valeur héxadécimale, les différentes variables sont séparées par
&.
Dans l’exemple précédent, q vaudra java et s vaudra Search, c’est le
serveur web qui interpretera ces valeurs avant de renvoyer sa réponse.
http://jb.vioix.free.fr
10-14
Le protocole HTTP
Requete GET
Le protocole HTTP : requête GET
Dans une requête GET les données sont envoyés après le nom de la
ressource demandée suivie d’un ?
GET / search . php ?q = java & s = Search HTTP /1.1
Les variables sont encodés selon le codage
application/x-www-urlencode : les espaces sont remplacés +, les
caractères non aphanumériques (sauf ) sont remplacés par % suivi
d’une valeur héxadécimale, les différentes variables sont séparées par
&.
Dans l’exemple précédent, q vaudra java et s vaudra Search, c’est le
serveur web qui interpretera ces valeurs avant de renvoyer sa réponse.
http://jb.vioix.free.fr
10-14
Le protocole HTTP
Requete POST
Le protocole HTTP : requête POST
La commande POST permet de demander une ressource au serveur
tout en envoyant des données.
La syntaxe est identique à celle de la requete GET.
Le corps de la requête comprend des variables donc le type est spécifié
par la variable d’entête Content-Type et la taille des données par
Content-Length.
La requete est validée par l’envoi d’une ligne blanche.
http://jb.vioix.free.fr
11-14
Le protocole HTTP
Requete POST
Le protocole HTTP : requête POST
La commande POST permet de demander une ressource au serveur
tout en envoyant des données.
La syntaxe est identique à celle de la requete GET.
Le corps de la requête comprend des variables donc le type est spécifié
par la variable d’entête Content-Type et la taille des données par
Content-Length.
La requete est validée par l’envoi d’une ligne blanche.
http://jb.vioix.free.fr
11-14
Le protocole HTTP
Requete POST
Le protocole HTTP : requête POST
La commande POST permet de demander une ressource au serveur
tout en envoyant des données.
La syntaxe est identique à celle de la requete GET.
Le corps de la requête comprend des variables donc le type est spécifié
par la variable d’entête Content-Type et la taille des données par
Content-Length.
La requete est validée par l’envoi d’une ligne blanche.
http://jb.vioix.free.fr
11-14
Le protocole HTTP
Requete POST
Le protocole HTTP : requête POST
La commande POST permet de demander une ressource au serveur
tout en envoyant des données.
La syntaxe est identique à celle de la requete GET.
Le corps de la requête comprend des variables donc le type est spécifié
par la variable d’entête Content-Type et la taille des données par
Content-Length.
La requete est validée par l’envoi d’une ligne blanche.
http://jb.vioix.free.fr
11-14
Le protocole HTTP
Requete POST
Le protocole HTTP : différences entre GET et POST
La différence fondamentale entre GET et POST est liée à l’envoi de
données au serveur.
La syntaxe des requêtes POST est proche mais les données sont
transmises dane le corps de la requête.
Parmi les éléments présents dans l’entête, l’élément Content-type
fixe l’encodage utilisé pour transmettre les données, il peut prendre
les valeurs suivantes :
application/x-www-form-urlencode, les données sont encodées
comme pour une requête GET,
multipart/form-data, qui est utilisé pour envoyer des fichiers
binaires (upload de fichiers),
text/plain est utilisé pour des données au format texte sans
modification.
La taille des données pouvant être envoyées par la méthode GET est
limitée, contrairement à la méthode POST.
Les données sont visibles pour l’utilisateur (barre d’adresse du
navigateur) si on utilise la méthode GET.
http://jb.vioix.free.fr
12-14
Le protocole HTTP
Requete POST
Le protocole HTTP : différences entre GET et POST
La différence fondamentale entre GET et POST est liée à l’envoi de
données au serveur.
La syntaxe des requêtes POST est proche mais les données sont
transmises dane le corps de la requête.
Parmi les éléments présents dans l’entête, l’élément Content-type
fixe l’encodage utilisé pour transmettre les données, il peut prendre
les valeurs suivantes :
application/x-www-form-urlencode, les données sont encodées
comme pour une requête GET,
multipart/form-data, qui est utilisé pour envoyer des fichiers
binaires (upload de fichiers),
text/plain est utilisé pour des données au format texte sans
modification.
La taille des données pouvant être envoyées par la méthode GET est
limitée, contrairement à la méthode POST.
Les données sont visibles pour l’utilisateur (barre d’adresse du
navigateur) si on utilise la méthode GET.
http://jb.vioix.free.fr
12-14
Le protocole HTTP
Requete POST
Le protocole HTTP : différences entre GET et POST
La différence fondamentale entre GET et POST est liée à l’envoi de
données au serveur.
La syntaxe des requêtes POST est proche mais les données sont
transmises dane le corps de la requête.
Parmi les éléments présents dans l’entête, l’élément Content-type
fixe l’encodage utilisé pour transmettre les données, il peut prendre
les valeurs suivantes :
application/x-www-form-urlencode, les données sont encodées
comme pour une requête GET,
multipart/form-data, qui est utilisé pour envoyer des fichiers
binaires (upload de fichiers),
text/plain est utilisé pour des données au format texte sans
modification.
La taille des données pouvant être envoyées par la méthode GET est
limitée, contrairement à la méthode POST.
Les données sont visibles pour l’utilisateur (barre d’adresse du
navigateur) si on utilise la méthode GET.
http://jb.vioix.free.fr
12-14
Le protocole HTTP
Requete POST
Le protocole HTTP : différences entre GET et POST
La différence fondamentale entre GET et POST est liée à l’envoi de
données au serveur.
La syntaxe des requêtes POST est proche mais les données sont
transmises dane le corps de la requête.
Parmi les éléments présents dans l’entête, l’élément Content-type
fixe l’encodage utilisé pour transmettre les données, il peut prendre
les valeurs suivantes :
application/x-www-form-urlencode, les données sont encodées
comme pour une requête GET,
multipart/form-data, qui est utilisé pour envoyer des fichiers
binaires (upload de fichiers),
text/plain est utilisé pour des données au format texte sans
modification.
La taille des données pouvant être envoyées par la méthode GET est
limitée, contrairement à la méthode POST.
Les données sont visibles pour l’utilisateur (barre d’adresse du
navigateur) si on utilise la méthode GET.
http://jb.vioix.free.fr
12-14
Le protocole HTTP
Requete POST
Le protocole HTTP : différences entre GET et POST
La différence fondamentale entre GET et POST est liée à l’envoi de
données au serveur.
La syntaxe des requêtes POST est proche mais les données sont
transmises dane le corps de la requête.
Parmi les éléments présents dans l’entête, l’élément Content-type
fixe l’encodage utilisé pour transmettre les données, il peut prendre
les valeurs suivantes :
application/x-www-form-urlencode, les données sont encodées
comme pour une requête GET,
multipart/form-data, qui est utilisé pour envoyer des fichiers
binaires (upload de fichiers),
text/plain est utilisé pour des données au format texte sans
modification.
La taille des données pouvant être envoyées par la méthode GET est
limitée, contrairement à la méthode POST.
Les données sont visibles pour l’utilisateur (barre d’adresse du
navigateur) si on utilise la méthode GET.
http://jb.vioix.free.fr
12-14
Le protocole HTTP
Requete POST
Le protocole HTTP : différences entre GET et POST
La différence fondamentale entre GET et POST est liée à l’envoi de
données au serveur.
La syntaxe des requêtes POST est proche mais les données sont
transmises dane le corps de la requête.
Parmi les éléments présents dans l’entête, l’élément Content-type
fixe l’encodage utilisé pour transmettre les données, il peut prendre
les valeurs suivantes :
application/x-www-form-urlencode, les données sont encodées
comme pour une requête GET,
multipart/form-data, qui est utilisé pour envoyer des fichiers
binaires (upload de fichiers),
text/plain est utilisé pour des données au format texte sans
modification.
La taille des données pouvant être envoyées par la méthode GET est
limitée, contrairement à la méthode POST.
Les données sont visibles pour l’utilisateur (barre d’adresse du
navigateur) si on utilise la méthode GET.
http://jb.vioix.free.fr
12-14
Le protocole HTTP
Requete POST
Le protocole HTTP : différences entre GET et POST
La différence fondamentale entre GET et POST est liée à l’envoi de
données au serveur.
La syntaxe des requêtes POST est proche mais les données sont
transmises dane le corps de la requête.
Parmi les éléments présents dans l’entête, l’élément Content-type
fixe l’encodage utilisé pour transmettre les données, il peut prendre
les valeurs suivantes :
application/x-www-form-urlencode, les données sont encodées
comme pour une requête GET,
multipart/form-data, qui est utilisé pour envoyer des fichiers
binaires (upload de fichiers),
text/plain est utilisé pour des données au format texte sans
modification.
La taille des données pouvant être envoyées par la méthode GET est
limitée, contrairement à la méthode POST.
Les données sont visibles pour l’utilisateur (barre d’adresse du
navigateur) si on utilise la méthode GET.
http://jb.vioix.free.fr
12-14
Le protocole HTTP
Requete POST
Le protocole HTTP : différences entre GET et POST
La différence fondamentale entre GET et POST est liée à l’envoi de
données au serveur.
La syntaxe des requêtes POST est proche mais les données sont
transmises dane le corps de la requête.
Parmi les éléments présents dans l’entête, l’élément Content-type
fixe l’encodage utilisé pour transmettre les données, il peut prendre
les valeurs suivantes :
application/x-www-form-urlencode, les données sont encodées
comme pour une requête GET,
multipart/form-data, qui est utilisé pour envoyer des fichiers
binaires (upload de fichiers),
text/plain est utilisé pour des données au format texte sans
modification.
La taille des données pouvant être envoyées par la méthode GET est
limitée, contrairement à la méthode POST.
Les données sont visibles pour l’utilisateur (barre d’adresse du
navigateur) si on utilise la méthode GET.
http://jb.vioix.free.fr
12-14
Le protocole HTTP
Requete POST
Le protocole HTTP : requête POST (exemple)
Exemple du requete POST envoyée par Firefox
POST /?/ comments /1/ HTTP /1.1
Host : jb . vioix . free . fr
User - Agent : Mozilla /5.0 ( X11 ; U ; Linux i686 ; fr ; rv :1.8.1. 1) Gecko /20061208 Firefox /2.0
Accept : text / xml , application / xml , application / xhtml + xml , text / html ; q =0.9 , text / plain ;q =0.8
Accept - Language : fr , fr - fr ; q =0.8 , en - us ; q =0.5 , en ; q =0.3
...
Content - Type : application /x - www - form - urlencoded
Content - Length : 174
redirect = http %3 A %2 F %2 Fjb . vioix . free . fr %2 F %3 F %2 FZDivers - et - varies %2 F1 - En - travaux & c_autho
Les données sont bien envoyées dans le corps de la requête, codée
selon application/x-www-form-urlencode.
http://jb.vioix.free.fr
13-14
Le protocole HTTP
Requete POST
Le protocole HTTP : requête POST (exemple)
Exemple du requete POST envoyée par Firefox
POST /?/ comments /1/ HTTP /1.1
Host : jb . vioix . free . fr
User - Agent : Mozilla /5.0 ( X11 ; U ; Linux i686 ; fr ; rv :1.8.1. 1) Gecko /20061208 Firefox /2.0
Accept : text / xml , application / xml , application / xhtml + xml , text / html ; q =0.9 , text / plain ;q =0.8
Accept - Language : fr , fr - fr ; q =0.8 , en - us ; q =0.5 , en ; q =0.3
...
Content - Type : application /x - www - form - urlencoded
Content - Length : 174
redirect = http %3 A %2 F %2 Fjb . vioix . free . fr %2 F %3 F %2 FZDivers - et - varies %2 F1 - En - travaux & c_autho
Les données sont bien envoyées dans le corps de la requête, codée
selon application/x-www-form-urlencode.
http://jb.vioix.free.fr
13-14
Le protocole HTTP
Requete POST
Le protocole HTTP : gestion des différents éléments par le
navigateur
Une page web est composée de nombreux éléments (fichiers XHTML,
images, feuilles de style, scripts,. . . ).
Pour télécharger ces éléments, le navigateur envoie les requêtes :
GET
GET
GET
GET
GET
GET
GET
GET
GET
/ HTTP /1.1
/ xmedia / theme / default / img / favicon . ico HTTP /1.1
/ xmedia / theme / jb / style . css HTTP /1.1
/ xmedia / theme / default / img / q . png HTTP /1.1
/ phpmv2 / phpmyvisites . js HTTP /1.1
/ xmedia / theme / jb / img / feeds . png HTTP /1.1
/ xmedia / theme / jb / img / sitemap . png HTTP /1.1
/ phpmv2 / phpmyvisites . php ? url = http %3 A // jb . vioix . free . fr /& pagename = ... HTTP /1.1
/ xmedia / theme / default / img / favicon . ico HTTP /1.1
Le serveur répond a toutes ces requêtes :
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
200
200
200
200
200
200
200
200
200
OK
OK
OK
OK
OK
OK
OK
OK
OK
http://jb.vioix.free.fr
( text / html )
( text / css )
( image /x - icon )
( application /x - javascript )
( image / png )
( image / png )
( image / png )
( GIF89a )
( image /x - icon )
14-14
Le protocole HTTP
Requete POST
Le protocole HTTP : gestion des différents éléments par le
navigateur
Une page web est composée de nombreux éléments (fichiers XHTML,
images, feuilles de style, scripts,. . . ).
Pour télécharger ces éléments, le navigateur envoie les requêtes :
GET
GET
GET
GET
GET
GET
GET
GET
GET
/ HTTP /1.1
/ xmedia / theme / default / img / favicon . ico HTTP /1.1
/ xmedia / theme / jb / style . css HTTP /1.1
/ xmedia / theme / default / img / q . png HTTP /1.1
/ phpmv2 / phpmyvisites . js HTTP /1.1
/ xmedia / theme / jb / img / feeds . png HTTP /1.1
/ xmedia / theme / jb / img / sitemap . png HTTP /1.1
/ phpmv2 / phpmyvisites . php ? url = http %3 A // jb . vioix . free . fr /& pagename = ... HTTP /1.1
/ xmedia / theme / default / img / favicon . ico HTTP /1.1
Le serveur répond a toutes ces requêtes :
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
200
200
200
200
200
200
200
200
200
OK
OK
OK
OK
OK
OK
OK
OK
OK
http://jb.vioix.free.fr
( text / html )
( text / css )
( image /x - icon )
( application /x - javascript )
( image / png )
( image / png )
( image / png )
( GIF89a )
( image /x - icon )
14-14
Le protocole HTTP
Requete POST
Le protocole HTTP : gestion des différents éléments par le
navigateur
Une page web est composée de nombreux éléments (fichiers XHTML,
images, feuilles de style, scripts,. . . ).
Pour télécharger ces éléments, le navigateur envoie les requêtes :
GET
GET
GET
GET
GET
GET
GET
GET
GET
/ HTTP /1.1
/ xmedia / theme / default / img / favicon . ico HTTP /1.1
/ xmedia / theme / jb / style . css HTTP /1.1
/ xmedia / theme / default / img / q . png HTTP /1.1
/ phpmv2 / phpmyvisites . js HTTP /1.1
/ xmedia / theme / jb / img / feeds . png HTTP /1.1
/ xmedia / theme / jb / img / sitemap . png HTTP /1.1
/ phpmv2 / phpmyvisites . php ? url = http %3 A // jb . vioix . free . fr /& pagename = ... HTTP /1.1
/ xmedia / theme / default / img / favicon . ico HTTP /1.1
Le serveur répond a toutes ces requêtes :
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
HTTP /1.1
200
200
200
200
200
200
200
200
200
OK
OK
OK
OK
OK
OK
OK
OK
OK
http://jb.vioix.free.fr
( text / html )
( text / css )
( image /x - icon )
( application /x - javascript )
( image / png )
( image / png )
( image / png )
( GIF89a )
( image /x - icon )
14-14

Documents pareils