Developpez.com - Développement Web
X

Choisissez d'abord la catégorieensuite la rubrique :

HTTP : le protocole du Web passé en revue

Date de publication : 26/07/2009. Date de mise à jour : 07/04/2012.

Par Julien Pauli Site personnel Blog

 

HTTP est le protocole du Web. Comprendre HTTP, c'est comprendre une bonne partie du fonctionnement du Web et une partie conséquente des enjeux d'aujourd'hui concernant la sécurité et les performances. Nous allons détailler dans cet article le protocole en lui-même. Vous allez voir qu'il n'est pas spécialement simple, contrairement à ce qu'on pourrait penser, et qu'une mauvaise compréhension ou utilisation peuvent avoir des répercussions néfastes, notamment sur les performances, le rendu final de la réponse, voire la sécurité du réseau. Nous nous rendrons aussi compte qu'il est complet, et qu'à ce titre on utilise rarement son plein potenciel, à tort (même si quelques fonctionnalités sont tout de même très spécifiques).
Cet article est publié, mais toujours en cours de conception. La date de mise à jour indique la version.
Viadeo Twitter Facebook Share on Google+        


Page 1
I. Préambule
Page 2
II. Introduction à HTTP
II-A. Définitions
II-B. Historique
II-C. Différence entre les versions
II-C-1. HTTP 0.9
II-C-2. HTTP 1.0
II-C-3. HTTP 1.1
Page 3
III. Requêtes
III-A. Typographie
III-B. Les méthodes
III-B-1. GET
III-B-2. HEAD
III-B-3. POST
III-B-4. PUT
III-B-5. DELETE
III-B-6. OPTIONS
III-B-7. TRACE
III-B-8. CONNECT
Page 4
IV. Réponses
IV-A. Typographie
IV-B. Codes de retour
IV-B-1. Codes 1xx - Informations
IV-B-1-a. 100 - Continue
IV-B-1-b. 101 - Switching Protocols
IV-B-2. Codes 2xx - Succès
IV-B-2-a. 200 - OK
IV-B-2-b. 201 - Created
IV-B-2-c. 202 - Accepted
IV-B-2-d. 203 - Non-Authoritative Information
IV-B-2-e. 204 - No Content
IV-B-2-f. 205 - Reset Content
IV-B-2-g. 206 - Partial Content
IV-B-3. Codes 3xx - Redirection
IV-B-3-a. 300 - Multiple Choices
IV-B-3-b. 301 - Permanently Redirect
IV-B-3-c. 302 - Found
IV-B-3-d. 303 - See Other
IV-B-3-e. 304 - Not Modified
IV-B-3-f. 305 - Use Proxy
IV-B-3-g. 306 inusité
IV-B-3-h. 307 - Temporary Redirect
IV-B-4. Codes 4xx - Erreurs client
IV-B-4-a. 400 - Bad Request
IV-B-4-b. 401 - Unauthorized
IV-B-4-c. 402 - Payment Required
IV-B-4-d. 403 - Forbidden
IV-B-4-e. 404 - Not Found
IV-B-4-f. 405 - Method Not Allowed
IV-B-4-g. 406 - Not Acceptable
IV-B-4-h. 407 - Proxy Authorization Required
IV-B-4-i. 408 - Request Timeout
IV-B-4-j. 409 - Conflict
IV-B-4-k. 410 - Gone
IV-B-4-l. 411 - Length Required
IV-B-4-m. 412 - Precondition Failed
IV-B-4-n. 413 - Request Entity Too Large
IV-B-4-o. 414 - Request URI Too Long
IV-B-4-p. 415 - Unsupported Media Type
IV-B-4-q. 415 - Requested Range Not Satisfiable
IV-B-5. Codes 5xx - Erreurs serveur
IV-B-5-a. 500 - Internal Server Error
IV-B-5-b. 501 - Not Implemented
IV-B-5-c. 502 - Bad Gateway
IV-B-5-d. 503 - Service Unavailable
IV-B-5-e. 504 - Gateway Timeout
IV-B-5-f. 505 - HTTP Version Not Supported
Page 5
V. Les en-têtes
V-A. Généraux
V-A-1. Date
V-A-2. Connection
V-A-3. Via
V-A-4. Upgrade
V-A-5. Trailer
V-A-6. Transfert-Encoding
V-A-7. Cache-Control
V-B. D'entité
V-B-1. Content-Encoding
V-B-2. Content-Language
V-B-3. Content-Length
V-B-4. Content-Location
V-B-5. Content-MD5
V-B-6. Content-Range
V-B-7. Content-Type
V-B-8. Expires
V-B-9. Last-Modified
V-C. De requête
V-C-1. Accept
V-C-2. Accept-Charset
V-C-3. Accept-Encoding
V-C-4. Accept-Language
V-C-5. Authorization
V-C-6. Cookie
V-C-7. Expect
V-C-8. From
V-C-9. Host
V-C-10. If-Match / If-None-Match
V-C-11. If-Modified-Since / If-Unmodified-Since
V-C-12. If-Range
V-C-13. Max-Forwards
V-C-14. Proxy-Authorization
V-C-15. Range
V-C-16. Referer
V-C-17. User-Agent
V-D. De réponse
V-D-1. Accept-Ranges
V-D-2. Allow
V-D-3. Age
V-D-4. ETag
V-D-5. Location
V-D-6. Proxy-Authenticate
V-D-7. Retry-After
V-D-8. Server
V-D-9. Set-Cookie
V-D-10. Vary
V-D-11. Warning
V-D-12. WWW-Authenticate
Page 6
VI. Transactions partielles
Page 7
VII. Proxies
VII-A. Définitions
VII-B. Rôles
VII-C. La mise en place sur les clients
VII-D. Exemple pratique
Page 8
VIII. Le cache
VIII-A. Définitions
VIII-B. Le fonctionnement
VIII-B-1. Au coeur du mécanisme de cache de HTTP 1.0
VIII-B-2. Au coeur du mécanisme de cache de HTTP 1.1
VIII-B-3. Fraicheur des données, validations et requêtes partielles
VIII-B-4. Provoquer le cache ou l'éviter
Page 9
IX. L'authentification
Page 10
X. Négociation de contenu
Page 11
XI. Gestion des connexions TCP avec HTTP
XI-A. Connexions parallèles
XI-B. Connexions persistantes
XI-C. Pipelining
Page 12
XII. Les outils
XII-A. Les langages Web : PHP
XII-B. Telnet
XII-C. Wget
XII-D. Curl
XII-E. Outils webs
Page 13
XIII. Au delà du Web avec HTTP
Page 14
XIV. Références


Valid XHTML 1.0 TransitionalValid CSS!

Copyright © 2009 Julien PAULI. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Responsable bénévole de la rubrique Développement Web : Xavier Lecomte -