Le Web comment ça marche ?
HTTP : le protocole
- Client
-
- Serveur
-
- Code réponse
- Entêtes
- Réponses
- Conçu au départ pour être le plus simple possible
-
- Ce n'est plus du tout vrai aujourd'hui !
- Voir http://www.w3.org/Protocols/History.html
pour un historique du protocole. De là, on accède à la dernière
version de la spécification complète du protocole.
HTTP : requêtes principales
- GET : demander quelque chose
-
- Document
- Script
- Mise à jour
- POST : envoi de paramètres
-
- HEAD : demander non pas le document mais des
informations le concernant
-
- PUT, DELETE, etc...
-
- Utilisés par les outils d'authoring : Frontpage, Netscape Gold,
etc...
HTTP : classes de réponses
- 2xx : Succès
-
- 3xx : Redirection
-
- 4xx : Erreur client
-
- 401 : Non autorisé
- 404 : Document inexistant
- 5xx : Erreur serveur
-
- 500 : erreur dans un script (entre autres)
- Erreur Gateway/Cache
HTTP : entêtes de requête
- From : adresse email
-
- Non envoyée par la majorité des clients pour des raisons de
confidentialité.
- Accept : une liste de types MIME
-
- image/gif, text/*, */*
- application/postscript, video/mpeg
- Accept-Encoding : Une liste de méthodes de codage
MIME
-
- Accept-Language : une liste de langues désirées
-
- Passe à la trappe dans 99% des cas, mais commence à être
utilisé
- Accept-Language est par exemple utilisé sur le site http://italy.imdb.com
(Pour tester, accéder à la page avec differéntes préférences de
Netscape)
HTTP : entêtes de requête (2)
- User-Agent : un identificateur du client
-
- Utile pour répondre différemment suivant les clients, ou pour
débugger.
- Ex : Mozilla 4.01b6 (X11, SunOS 2.5)
- Referer : La page d'où l'on vient
-
- Authorization : login passwd
-
- Assez faible question sécurité.
- If-Modified-Since : Date
-
- Permet de transférer la page que s'il elle a été modifiée
depuis la date précisée.
- Très utile pour les caches !
- Cache-Control :
-
- Pour le contrôle des caches.
- Permet d'indiquer si le document demandé peut être caché ou
pas.
HTTP : entêtes de réponse
- Date : la date de traitement de la requête.
- Last-Modified : date
-
- Content-Type : le type MIME du document renvoyé.
-
- text/html
- image/gif
- application/postscript
- text/plain
- audio/basic
- video/mpeg
- etc...
- Content-Length : longueur des données, en octets
-
- Utile pour savoir si tout s'est bien passé.
- Non obligatoire...
HTTP : entêtes de réponse (2)
- Content-Encoding
-
- compress, x-gzip, x-zip, etc...
- Content-Language : le langage utilisé
-
- fr : français, en : anglais, it : italien, etc...
HTTP : réponse
- Un seul objet par réponse
-
- Pas de type MIME multipart/* à part dans certaines
animations.
- Le multipart est considéré comme un gros caca...
- ... pour l'instant !