Protocole HTTP - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Protocole HTTP

Description:

le client accepte les morceaux/paquets de caract res. Content-Length: 142. le nombre de ... langues que le navigateur accepte. maintenir ou non la connection ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 25
Provided by: flo74
Category:

less

Transcript and Presenter's Notes

Title: Protocole HTTP


1
Protocole HTTP
  • Florence Mendes année 2005-2006
  • Réalisé à partir du cours de Didier Ferment

2
Introduction
  • Le protocole HTTP (HyperText Transfer Protocol)
    réalise les transferts de fichiers entre un
    navigateur sur une machine cliente et un serveur
    Web.
  • C'est le protocole le plus utilisé sur Internet.
  • HTTP/1.0 défini dans la RFC 1945
  • HTTP/1.1 sur le W3C

3
Exemple transfert d'une page web
  • On souhaite obtenir la page
  • www.u-picardie.fr/ferment/http/prog/page_test1.h
    tml
  • C'est donc cette adresse qui est tapée dans la
    barre d'adresse du navigateur
  • Un échange requête-réponse est initié par le
    navigateur client
  • requête du client vers le serveur
  • réponse du serveur vers le client

4
Exemple transfert d'une page web
  • Le navigateur envoie
  • GET /ferment/http/prog/page_test1.html
    HTTP/1.1Connection Keep-AliveUser-Agent
    Mozilla/5.0 (compatible Konqueror/3.1 Linux
    fr)Referer http//www.u-picardie.fr/ferment/htt
    p/prog/Pragma no-cacheCache-control
    no-cacheAccept text/html, image/jpeg,
    image/png, text/, image/, /Accept-Encoding
    x-gzip, x-deflate, gzip, deflate,
    identityAccept-Charset iso-8859-1, utf-8q0.5,
    q0.5Accept-Language fr, enHost
    www.u-picardie.fr

5
Exemple transfert d'une page web
  • Le serveur répond et envoie la page web
  • HTTP/1.1 200 OKDate Tue, 22 Jun 2004 131815
    GMTServer Apache/1.3.26 (Unix) Debian GNU/Linux
    PHP/4.1.2 mod_ssl/2.8.9 OpenSSL/0.9.6g
    DAV/1.0.3Last-Modified Tue, 22 Jun 2004
    131543 GMTETag "63f3d-8e-40d830ff"Accept-Rang
    es bytesContent-Length 142Keep-Alive
    timeout15, max2000Connection
    Keep-AliveContent-Type text/html

6
Exemple transfert d'une page web
  • lthtmlgtltbodygtlth1gt page html lt/h1gtltpgt contenant
    une image ltbrgtet une seuleltimg
    src"balle.gif"gtlt/pgtlt/bodygtlthtmlgt
  • Le navigateur lit que le fichier balle.gif doit
    être affiché

7
Exemple transfert d'une page web
  • Le navigateur demande l'image
  • GET /ferment/http/prog/balle.gif
    HTTP/1.1Connection Keep-AliveUser-Agent
    Mozilla/5.0 (compatible Konqueror/3.1 Linux
    fr)Referer http//www.u-picardie.fr/ferment/htt
    p/prog/page_test1.htmlAccept image/x-krl,
    image/x-portable-bitmap, image/x-xbm,
    image/x-ico, image/png, image/x-portable-pixmap,
    image/jpeg, image/x-xpm, image/x-eps, image/tiff,
    image/x-bmp, image/gifAccept-Encoding x-gzip,
    x-deflate, gzip, deflate, identityAccept-Charset
    iso-8859-1, utf-8q0.5, q0.5Accept-Language
    fr, enHost www.u-picardie.fr

8
Exemple transfert d'une page web
  • Le serveur renvoie l'image
  • HTTP/1.1 200 OKDate Tue, 22 Jun 2004 131815
    GMTServer Apache/1.3.26 (Unix) Debian GNU/Linux
    PHP/4.1.2 mod_ssl/2.8.9 OpenSSL/0.9.6g
    DAV/1.0.3Last-Modified Tue, 22 Jun 2004
    131542 GMTETag "63f3b-2b1-40d830fe"Accept-Ran
    ges bytesContent-Length 689Keep-Alive
    timeout15, max2000Connection
    Keep-AliveContent-Type image/gif
  • GIF89abI8)/1iso8859-15äU/1iso8859-15éÉD...
    ...

9
REQUÊTE-REPONSE
  • Le client-navigateur envoie une requête HTTP
  • Le plus souvent GET "donnes-moi tel fichier"
  • sinon POST"voici des données provenant d'un
    formulaire HTML à envoyer au serveur""voici des
    données provenant d'un fichier à envoyer au
    serveur"
  • sinon HEAD, ....
  • Le serveur-distant traite la requête puis envoie
    une réponse HTTP
  • Le plus souvent 200 OK suivi du contenu du
    fichier demandé
  • Quelques fois 404 NOT FOUNDsi le fichier requis
    n'existe pas
  • 201 CREATEDqui signifie que la requete POST est
    bien arrivée et traitée
  • ....

10
  • GET /ferment/http/prog/page_test1.html
    HTTP/1.1Connection Keep-AliveUser-Agent
    Mozilla/5.0 (compatible Konqueror/3.1 Linux
    fr)Referer http//www.u-picardie.fr/ferment/htt
    p/prog/Pragma no-cacheCache-control
    no-cacheAccept text/html, image/jpeg,
    image/png, text/, image/, /Accept-Encoding
    x-gzip, x-deflate, gzip, deflate,
    identityAccept-Charset iso-8859-1, utf-8q0.5,
    q0.5Accept-Language fr, enHost
    www.u-picardie.fr

11
Requête HTTP
  • la ligne de requête
  • la méthode l'action à effectuer (GET,POST,HEAD,
    ...)
  • le nom URI de la ressource
  • la version du protocole utilisé par le client
    (HTTP/1.0 ou HTTP/1.1)
  • l'en-tête de la requête composé de champs et
    leurs valeurs, sans ordre et séparés par passages
    à la ligne
  • un passage à la ligne
  • le corps de la requête, s'il y a lieu, composé
    des lignes de données

12
En-tête de requête HTTP
  • Connection Keep-Alivene pas couper la
    connection après la réponse
  • User-Agent Mozilla/5.0 (compatible
    Konqueror/3.1 Linux fr)le type de client
  • Referer http//www.u-picardie.fr/ferment/http/pr
    og/URL du lien à partir duquel la requête a été
    effectuée. Ainsi, le serveur pourrait générer des
    listes de "rétro-liens" destinées aux moteurs de
    recherche
  • Pragma no-cachesouhaite le contenu réel et non
    pas un contenu stocké sur un cache d'un
    quelconque serverversion 1.0
  • Cache-control no-cachesouhaite le contenu réel
    et non pas un contenu stocké sur un cache d'un
    quelconque serverversion 1.1

13
En-tête de requête HTTP
  • Accept text/html, image/jpeg, image/png, text/,
    image/, /le client peut recevoir tous ces
    formats (il pourrait y avoir un "facteur de
    qualité" indiquant un ordre de préférence)
  • Accept-Encoding x-gzip, x-deflate, gzip,
    deflate, identityle client peut recevoir tous
    ces encodages (il pourrait y avoir un "facteur de
    qualité")
  • Accept-Charset iso-8859-1, utf-8q0.5,
    q0.5... et ces jeux de caractères. De plus,
    grâce aux facteurs de qualité indiqués, si la
    ressource demandée existe en diverses variantes
    d'encodage, alors la préférée sera l'iso-8859-1,
    sinon l'utf-8, ...
  • Accept-Language fr, en... et ces langues (il
    pourrait y avoir un "facteur de qualité")
  • Host www.u-picardie.frURI et eventuellement le
    port du server distant appeléobligatoire en 1.1

14
  • HTTP/1.1 200 OKDate Tue, 22 Jun 2004 131815
    GMTServer Apache/1.3.26 (Unix) Debian GNU/Linux
    PHP/4.1.2 mod_ssl/2.8.9 OpenSSL/0.9.6g
    DAV/1.0.3Last-Modified Tue, 22 Jun 2004
    131542 GMTETag "63f3b-2b1-40d830fe"Accept-Ran
    ges bytesContent-Length 689Keep-Alive
    timeout15, max2000Connection
    Keep-AliveContent-Type image/gif
  • GIF89abI8)/1iso8859-15äU/1iso8859-15éÉD...
    ...

15
Réponse HTTP
  • la ligne de statut
  • la version du protocole (HTTP/1.0 ou HTTP/1.1)
  • le code de statut qui précise qui si la requête a
    abouti ou s'il y a une erreur
  • la signification du code
  • l'en-tête de la réponse (constitue des
    informations supplémentaires)
  • Champs et valeurs
  • un passage à la ligne
  • le corps de la réponse, s'il y a lieu, composé
    des lignes du document demandé

16
En-tête de réponse HTTP
  • Date Tue, 22 Jun 2004 131815 GMTde traitement
  • Server Apache/1.3.26 (Unix) Debian GNU/Linux
    PHP/4.1.2 mod_ssl/2.8.9 OpenSSL/0.9.6g
    DAV/1.0.3infos sur le server
  • Last-Modified Tue, 22 Jun 2004 131543 GMTdate
    de dernière modification de la ressource demandée
  • ETag "63f3d-8e-40d830ff"l'entity tag est un
    identifiant de la ressource et de son contenu
    (pour savoir s'il a été modifié)

17
En-tête de réponse HTTP
  • Accept-Ranges bytesle client accepte les
    morceaux/paquets de caractères
  • Content-Length 142le nombre de caractères du
    corps de réponse, donc du contenu du fichier
    demandé
  • Keep-Alive timeout15, max2000délai de
    maintien de la connectionversion 1.0
  • Connection Keep-Alivemaintien de la
    connectionversion 1.1
  • Content-Type text/htmltype du contenu envoyé

18
Méthodes des requêtes HTTP
  • GETsignifie "envoie-moi" le contenu quel qu'il
    soit de la ressource identifiée par
    l'URI-viséeC'est la méthode fondamentale pour un
    navigateur qui "appelle" des pages
  • elle a souvent un en-tête précisant
  • le type de navigateur
  • l'utilisation ou non des caches
  • les formats, encodage, langues que le navigateur
    accepte
  • maintenir ou non la connection
  • éventuellement des cookies si l'URL en a posé
  • éventuellement une date indiquant de ne récupérer
    la ressource que si celle-ci a été modifiée
    depuis cette date c'est le champ
    If-Modified-Since 

19
Méthodes des requêtes HTTP
  • POSTelle permet d'envoyer au serveur le contenu
    du corps de la requête
  • la ressource identifiée par l'URI-visée est
    généralement un script exécutable qui traitera
    les données reçues

20
Méthodes des requêtes HTTP
  • elle fournit les résultats d'un formulaire html,
    à un processus de gestion de donnéeselle permet
    l'ajout d'éléments à une base de données.
  • elle possède un corps de requête contenant les
    données à transférer vers le serveur
  • elle a souvent un en-tête précisant
  • HTTP 1.0 obligatoirement la longueur des
    données transmises c'est le champ
    Content-Length
  • HTTP 1.1 sinon le champ Transfer-Encoding
    chunkedqui évite de calculer au préalable la
    longueur du corps de requête mais qui nécessite
    un encodage ad-hoc du corps
  • le type des données transmisesc'est le champ
    Content-Type
  • logiquement, la non-utilisation des caches
  • les formats, encodage, langues que le navigateur
    accepte
  • maintenir ou non la connection
  • éventuellement des cookies si l'URL en a posé

21
codes de statut de réponse HTTP
  • 10x message d'information version http gt 1.0
  • 20x correctement reçu, interprété, et exécuté
  • 30x redirection une décision supplémentaire
    doit être prise pour terminer la requête
  • 40x erreur due au client requête incorrecte
  • 50x erreur due au serveur erreur interne du
    serveur

22
codes de statut de réponse HTTP
  • 200 OK
  • 201 CrééLa requête a abouti, et une nouvelle
    ressource réseau en résulte.
  • 202 AcceptéeLa requête a été reçue et
    interprétée correctement, mais son traitement
    n'est pas terminé.
  • 204 Pas de contenuLa requête a abouti et le
    serveur n'a rien à envoyer en retour.
  • 301 Changement d'adresse définitive
  • 302 Changement d'adresse temporaire
  • 304 Non modifié
  • 400 Requête incorrecteLa requête n'a pu être
    reconnue par le serveur pour cause d'une syntaxe
    incorrecte.

23
codes de statut de réponse HTTP
  • 401 Non autorisé
  • 403 InterditLe serveur a compris la requête,
    mais refuse de la satisfaire.
  • 404 Non trouvé
  • 500 Erreur serveur interneLe serveur a été en
    présence d'un événement inattendu, qui l'a
    empêché de traiter la requête correctement.
  • 501 Non implémenté
  • 502 Erreur de routeur
  • 503 Service indisponible

24
La suite
  • http//www.u-picardie.fr/ferment/http/sommaire.ht
    ml
Write a Comment
User Comments (0)
About PowerShow.com