Le protocole HTTP
Transcription
Le protocole HTTP
Généralités Le protocole HTTP ❚ ❚ ❚ ❚ Christophe Borelly IUT Béziers, Dépt R&T HTTP : Hypertext Transfer Protocol Protocole utilisé pour le World Wide Web. Port TCP 80 par défaut. HTTP/1.1 (RFC 2616) - Juin 1999 ❙ Peut utiliser la même connexion réseau pour plusieurs requêtes/réponses. ❚ HTTP/1.0 (RFC 1945) - © 2005 ❙ Utilise une nouvelle connexion réseau à chaque requête/réponse. http://www.borelly.net [email protected] ❚ HTTP/0.9 - 1990 22/11/06 [email protected] Type MIME Requête HTTP ❚ HTTP utilise la dénomination de format défini pour Internet Mail (RFC 822) ❚ MIME : Multipurpose Internet Mail Extensions (RFC 2045) ❚ Exemples : text/plain, text/html, image/jpeg, image/png, x-application/pdf, etc... ❚ Le client envoi une requête (qui contient une méthode, un URI et une version de protocole) à la quelle on peut ajouter des options. ❚ La fin de la requête est une ligne CR LF (0x0D 0x0A). 22/11/06 22/11/06 [email protected] 3 Méthodes possibles ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ GET /pub/WWW/TheProject.html HTTP/1.1<CRLF> Host: www.w3.org<CRLF> <CRLF> ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ [email protected] [email protected] 4 Options de requête OPTIONS GET HEAD POST PUT DELETE TRACE CONNECT 22/11/06 2 5 Accept Accept-Charset Accept-Encoding Accept-Language Authorization Expect From Host If-Match 22/11/06 ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ If-Modified-Since If-None-Match If-Range If-Unmodified-Since Max-Forwards Proxy-Authorization Range Referer TE User-Agent [email protected] 6 Réponse HTTP Codes d’erreur ❚ Le serveur répond par une ligne de statut (qui contient la version du protocole et le code d’erreur) suivie par les options du serveur. ❚ La fin de la réponse est une ligne CR LF (0x0D 0x0A). ❚ Le code d’erreur est un nombre de 3 digits avec 5 catégories : HTTP/1.1 200 OK<CRLF> Date: Fri, 23 Sep 2005 14:51:30 GMT<CRLF> Server: Apache/2.0.52 (Win32) mod_ssl/2.0.52 OpenSSL/0.9.7c PHP/5.0.2<CRLF> Content-Length: 376<CRLF> Content-Type: text/html; charset=ISO-8859-1<CRLF> Content-Language: fr<CRLF> <CRLF> ... 22/11/06 [email protected] ❙ 1xx : Information, requête reçue en cours de traitement. ❙ 2xx : Succès, requête reçue, comprise et acceptée. ❙ 3xx : Redirection, une action supplémentaire est nécessaire pour traiter la requête. ❙ 4xx : Erreur du client, mauvaise syntaxe ou requête interrompue. ❙ 5xx : Erreur du serveur sur une requête qui semble valide. 7 Codes d’erreur (1) ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ 100 101 200 201 202 203 204 205 206 : : : : : : : : : 22/11/06 ❚ ❚ ❚ ❚ ❚ ❚ ❚ 9 Codes d’erreur (3) ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ 400: 401: 402: 403: 404: 405: 406: 407: 408: 409: 22/11/06 8 300: 301: 302: 303: 304: 305: 307: 22/11/06 Multiple Choices Moved Permanently Found See Other Not Modified Use Proxy Temporary Redirect [email protected] 10 Codes d’erreur (4) Bad Request Unauthorized Payment Required Forbidden Not Found Method Not Allowed Not Acceptable Proxy Authentication Required Request Time-out Conflict [email protected] [email protected] Codes d’erreur (2) Continue Switching Protocols OK Created Accepted Non-Authoritative Information No Content Reset Content Partial Content [email protected] 22/11/06 ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ 11 410: 411: 412: 413: 414: 415: 416: 417: 22/11/06 Gone Length Required Precondition Failed Request Entity Too Large Request-URI Too Large Unsupported Media Type Requested range not satisfiable Expectation Failed [email protected] 12 Codes d’erreur (5) ❚ ❚ ❚ ❚ ❚ ❚ 500: 501: 502: 503: 504: 505: Options de réponse Internal Server Error Not Implemented Bad Gateway Service Unavailable Gateway Time-out HTTP Version not supported 22/11/06 [email protected] ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ 13 Options spécifiques à un contenu ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ ❚ 22/11/06 [email protected] 14 Références Allow Content-Encoding Content-Language Content-Length Content-Location Content-MD5 Content-Range Content-Type Expires Last-Modified 22/11/06 Accept-Ranges Age ETag Location Proxy-Authenticate Retry-After Server Vary WWW-Authenticate ❚ Site Web : ❙ http://www.faqs.org/ [email protected] 15 22/11/06 [email protected] 16