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