HyperText Transfer Protocol (HTTP)
INF228
Cyril Concolato – 2013
HTTP
Protocole de téléchargement
Protocole orienté client/serveur
• « user-agent », ex: Firefox, wget, …
• Serveur: Apache, IIS, NodeJS
Protocole utilisé pour transmettre des « ressources »
• Identifiées par une URL/URI/IRI
URL
scheme://domain:port/path?query_string#fragment_id
Ex:
• http:// perso.telecom-paristech.fr : 80 /~concolat/ index.html
• ?name=value&name2=value2
• https://
• ws://
• file://
HTTP
(1991) 0.9 (1996) 1.0 1.1(01/1997)
2.0 (??)
HTTP et ses versions
Version 0.9
• Implémentée par Tim-Berners Lee
Version 1.0
• Défini par IETF/W3C
Version 1.1
• Évolution mineure de HTTP 1.0
Version 2.0
• En cours de développement, basé sur Google SPDY
HTTP et les autres protocoles
Protocole s’appuyant (principalement) sur le protocole TCP (fiable)
• Typiquement sur le port 80 (443 pour HTTPS)
Compatible avec la notion de proxy
Protocole sans
mémoire: mise en
cache possible
Messages HTTP
Requêtes/réponses
• Requête=Méthode+URL+Protocole+Entête(+données)
─ GET
─ POST
─ HEAD
─ OPTIONS
─ PUT
─ DELETE
─ TRACE
─ CONNECT
─ PATCH
• Réponse=Protocole+Code de réponse+entête+ressource
Entêtes textuelles (pas les ressources)
Code de réponse
Succès (2xx)
• OK (200)
• …
Redirections (3xx)
• Moved (301)
• …
Erreur de requête (4xx)
• Bad request (400)
• …
• Forbidden (403)
• Not found (404)
Erreur du server (5xx)
• Internal Error (500)
• …
Exemples
Requête/Réponse
HTTP avancé
Connexion persistante
Cookies
HTTPS
Byte-range