La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

11:00:56 Programmation Web 2012-2013 1 Programmation Web : Protocole HTTP Jérôme CUTRONA

Présentations similaires


Présentation au sujet: "11:00:56 Programmation Web 2012-2013 1 Programmation Web : Protocole HTTP Jérôme CUTRONA"— Transcription de la présentation:

1 11:00:56 Programmation Web Programmation Web : Protocole HTTP Jérôme CUTRONA

2 211:00:56 Programmation Web Introduction HTTP : H yper T ext T ransfer P rotocol HTTP : H yper T ext T ransfer P rotocol HTTP : Protocole du Web HTTP : Protocole du Web Protocole d'échange entre client et serveur Web Protocole d'échange entre client et serveur Web Protocole orienté ligne de caractères Protocole orienté ligne de caractères Dans notre cas : Dans notre cas : Étude du protocole pour la culture (ça rime avec torture) Étude du protocole pour la culture (ça rime avec torture) Compréhension des cookies Compréhension des cookies Compréhension des sessions Compréhension des sessions Utilisation avancée de PHP (côté serveur) Utilisation avancée de PHP (côté serveur) Utilisation dAJAX Utilisation dAJAX

3 311:00:56 Programmation Web RéseauRéseau Utilisation de HTTP/1.0 Client Web (Navigateur) (Navigateur) Serveur Web (Apache) (Apache) Requête HTTP Réponse HTTP Fermeture de connexion Réponse HTTP Fermeture de connexion Connexion TCP (port 80) Validation de la connexion

4 411:00:56 Programmation Web RéseauRéseau Utilisation de HTTP/1.0 Client Web (Navigateur) (Navigateur) Serveur Web (Apache) (Apache) Requête HTTP Réponse HTTP Établissement dune connexion TCP (port 80) Désire des ressources Possède des ressources As-tu / ? Ressources Fermeture de connexion J. Cutrona J. Cutrona Programmation Web Programmation Web Programmation Web S1 Programmation Web S1 Programmation Web S2 Programmation Web S2 Programmation Web S3 Programmation Web S3 Dernière modification de cette page le 07/09/2008 à 23h27 Dernière modification de cette page le 07/09/2008 à 23h27 Valid HTML 4.01! alt="Valid HTML 4.01!" height="31" width="88"> Valid CSS! alt="Valid CSS!" height="31" width="88"> Fichier/ Oui …

5 511:00:56 Programmation Web Remarques importantes Le client ouvre la connexion Le client ouvre la connexion Le serveur ferme la connexion Le serveur ferme la connexion 1 transaction = 1 ressource transférée (v 1.0) 1 transaction = 1 ressource transférée (v 1.0) Protocole sans état Protocole sans état Aucune information gardée entre deux transactions Aucune information gardée entre deux transactions Le serveur "oublie" le client après chaque transaction Le serveur "oublie" le client après chaque transaction Problème pour la gestion d'une session Problème pour la gestion d'une session

6 611:00:56 Programmation Web Autres remarques importantes Le client demande des ressources Le client demande des ressources Le serveur répond aux demandes des clients : Le serveur répond aux demandes des clients : Délivre la ressource demandée si possible Délivre la ressource demandée si possible Informe de la raison de non remise Informe de la raison de non remise Echanges multi-plateforme Echanges multi-plateforme ASCII 7bits (encodage si non ASCII 7bits) ASCII 7bits (encodage si non ASCII 7bits) Requêtes émises en clair Requêtes émises en clair Réponses émises en clair Réponses émises en clair

7 711:00:56 Programmation Web Structure d'un message HTTP Orienté lignes de caractères : = retour à la ligne = retour à la ligne Requête ou réponse : Requête ou état Requête ou état [Entête: valeur ] [… ] Ligne blanche Ligne blanche [Corps de message] HTTP 1.0: 16 en-têtes HTTP 1.1: 46 en-têtes

8 811:00:56 Programmation Web Requête HTTP 1.0 GET|POST|HEAD chemin HTTP/1.0 GET|POST|HEAD chemin HTTP/1.0 User-Agent: agent User-Agent: agent [Entête: valeur ] [… ] Ligne blanche Ligne blanche [Données] Netiquette

9 911:00:56 Programmation Web Méthodes de requête HTTP HEAD demande des informations concernant la ressource GET demande des informations et la ressource désignée POST envoi de données (formulaire vers le serveur) et demande la ressource désignée PUT enregistrement du corps de la requête à l URL indiquée DELETE suppression de la ressource désignée par l URL

10 1011:00:56 Programmation Web Exemple de requête HTTP GET / HTTP/1.0 GET / HTTP/1.0 Ligne blanche Ligne blanche HEAD /page1.html HTTP/1.0 HEAD /page1.html HTTP/1.0 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.7) Gecko/ Firefox/1.0.3 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.7) Gecko/ Firefox/1.0.3 Ligne blanche Ligne blanche

11 1111:00:56 Programmation Web Réponse HTTP HTTP/version code phrase HTTP/version code phrase Content-Type: type_mime Content-Type: type_mime [Entête: valeur ] [… ] Ligne blanche Ligne blanche [Données] Obligatoire Le client doit être informé de la nature de la ressource : HTML Image JPEG Doc PDF Animation Flash … Exemples de type_mime : text/htmltext/html image/jpegimage/jpeg text/csstext/css video/mpegvideo/mpeg …

12 1211:00:56 Programmation Web Exemple de réponse HTTP HTTP/1.x 200 OK HTTP/1.x 200 OK Date: Mon, 25 Apr :25:17 GMT Date: Mon, 25 Apr :25:17 GMT Server: Apache/ (Red Hat) Server: Apache/ (Red Hat) X-Powered-By: PHP/4.3.2 X-Powered-By: PHP/4.3.2 Content-Type: text/html Content-Type: text/html Ligne blanche Ligne blanche ......

13 1311:00:56 Programmation Web États des réponses HTTP Codes à 3 chiffres + phrase Codes à 3 chiffres + phrase 1er chiffre : classe de réponse 1er chiffre : classe de réponse 1xx : Information (HTTP 1.1) 1xx : Information (HTTP 1.1) 2xx : Succès 2xx : Succès 200 OK 200 OK 3xx : Redirection 3xx : Redirection 304 NOT MODIFIED 304 NOT MODIFIED 4xx : Erreur client 4xx : Erreur client 403 FORBIDDEN 403 FORBIDDEN 404 NOT FOUND 404 NOT FOUND 5xx : Erreur serveur 5xx : Erreur serveur 500 INTERNAL ERROR 500 INTERNAL ERROR

14 1411:00:56 Programmation Web Protocole HTTP 1.1 Contexte HTTP 1.0 : Contexte HTTP 1.0 : 1 transaction = 1 ressource transmise 1 transaction = 1 ressource transmise Pas de connexion persistante Pas de connexion persistante Mauvaise utilisation du cache Mauvaise utilisation du cache 1 IP = 1 serveur Web 1 IP = 1 serveur Web Améliorations HTTP 1.1 : Améliorations HTTP 1.1 : 1 transaction persistante = X ressources transmises 1 transaction persistante = X ressources transmises Connexion persistante Connexion persistante Standardisation du cache Standardisation du cache Découpage d'une ressource (chunk encoding) Découpage d'une ressource (chunk encoding) 1 IP = X serveurs Web (proxy, serveurs virtuels) 1 IP = X serveurs Web (proxy, serveurs virtuels)

15 1511:00:56 Programmation Web Protocole HTTP 1.1 Contraintes du client : Contraintes du client : inclure l'en-tête Host: à chacune des requêtes. Le serveur physique doit savoir quel serveur virtuel interroger inclure l'en-tête Host: à chacune des requêtes. Le serveur physique doit savoir quel serveur virtuel interroger accepter des réponses avec des données encodées de type chunked accepter des réponses avec des données encodées de type chunked supporter les connections persistantes, ou inclure l'en-tête Connection: close à chacune des requêtes supporter les connections persistantes, ou inclure l'en-tête Connection: close à chacune des requêtes supporter la réponse 100 Continue supporter la réponse 100 Continue

16 1611:00:56 Programmation Web Requête HTTP 1.1 GET|POST|HEAD chemin HTTP/1.1 GET|POST|HEAD chemin HTTP/1.1 Host: hôte Host: hôte User-Agent: agent User-Agent: agent [header ] [… ] Ligne blanche Ligne blanche [Données] Obligatoire Netiquette

17 1711:00:56 Programmation Web Soumission de formulaires Requête HTTP : GET form.php?p1=X&p2=Y HTTP/1.0 GET form.php?p1=X&p2=Y HTTP/1.0 Ligne blanche Ligne blanche Traduit dans l'URL : Peut donc être mis en favori Valeurs saisies dans le formulaire : Couples nom_champ=valeur_encodée séparés par &

18 1811:00:56 Programmation Web Soumission de formulaires Requête HTTP : POST form.php HTTP/1.0 POST form.php HTTP/1.0 Content-Type: application/x-www-form-urlencoded Content-Type: application/x-www-form-urlencoded Content-Length: 9 Content-Length: 9 Ligne blanche Ligne blanche p1=X&p2=Y NON traduit dans l'URL Ne peut donc PAS être mis en favori Valeurs saisies dans le formulaire : Couples nom_champ=valeur_encodée séparés par &

19 1911:00:56 Programmation Web Encodage des données Protocole HTTP : ASCII 7bits (base commune à toutes les plateformes) Tout caractère non ASCII 7bits doit être encodé saisies dans les formulaires (fait par le navigateur) saisies dans les formulaires (fait par le navigateur) URL (à faire soi-même) URL (à faire soi-même) Principe dencodage : Espace + Espace + Caractères spéciaux %code_ASCII_hexa Caractères spéciaux %code_ASCII_hexa Caractères accentués %code_ASCII_hexa Caractères accentués %code_ASCII_hexa Exemples : ô %F4 Exemples : ô %F4 [ %5B

20 2011:00:56 Programmation Web Cookies But : But : Éviter que le serveur « oublie le client » Éviter que le serveur « oublie le client » Maintenir un « mode connecté » (= session) Maintenir un « mode connecté » (= session) Rendre transparent un échange client / serveur Rendre transparent un échange client / serveur Exemple e-commerce : ajouter des articles au panier Exemple e-commerce : ajouter des articles au panier Serveur : Serveur : Set-Cookie: var=val[; expires=date; path=chemin; domain=domaine] Client : Client : Cookie: var=val;

21 2111:00:56 Programmation Web Réseau Cookies, principe des échanges Client Web (Navigateur) Serveur Web (Apache) GET / HTTP/1.1 HTTP/ OK Set-Cookie: Id=1212; path=/; GET /liste HTTP/1.1 Cookie: Id=1212 HTTP/ OK … Id=1212; path=/; path=/;


Télécharger ppt "11:00:56 Programmation Web 2012-2013 1 Programmation Web : Protocole HTTP Jérôme CUTRONA"

Présentations similaires


Annonces Google