article

Le Hypertext Transfer Protocol, plus connu sous l'abréviation HTTP, littéralement le « protocole de transfert hypertexte », est un protocole de communication client-serveur développé pour le World Wide Web. Il est utilisé pour échanger toute sorte de données entre client HTTP et serveur HTTP.

HTTPS (avec S pour secured, soit « sécurisé ») est la variante du HTTP sécurisé avec les protocoles SSL ou TLS.

Généralités


Le protocole HTTP peut fonctionner sur n'importe quelle connexion fiable. Dans les faits, il fonctionne sur TCP. Par défaut, HTTP utilise le port 80 et HTTPS utilise le port 443.

Logiciels

Parmi les logiciels client HTTP on peut citer : Parmi les logiciels serveur HTTP, on peut citer :

Du client au serveur

La liaison entre le client et le serveur n'est pas toujours directe, il peut exister des machines intermédiaires servant de relai :
  • un Serveur mandataire (Proxy en anglais) peut modifier les réponses et requêtes qu'il reçoit et peut gérer un cache des ressources demandées

  • un Gateway est un intermédiaire modifiant le protocole utilisé
  • un Tunnel transmet les requêtes et les réponses sans aucune modification, ni mise en cache.

Méthodes

Dans HTTP, une méthode est un type de requête.
GET:C'est la méthode la plus courante pour demander une ressource. Une requête GET est sans effet sur la ressource, il doit être possible de répéter la requête sans effet.
HEAD:Cette méthode ne demande que des informations sur la ressource, sans demander la ressource elle-même.
POST:Cette méthode doit être utilisée lorsqu'une requête modifie la ressource.
OPTIONS:Cette méthode permet d'obtenir les options de communication d'une ressource ou du serveur en général.
CONNECT:Cette méthode permet d'utiliser un proxy comme un tunnel de communication.
TRACE:Cette méthode demande au serveur de retourner ce qu'il a reçu, dans le but de tester et effectuer un diagnostic sur la connexion.
PUT:Cette méthode permet d'ajouter une ressource sur le serveur.
DELETE:Cette méthode permet de supprimer une ressource du serveur.
Ces 2 dernières méthodes nécessitent généralement un accès privilégié.

Certains serveurs autorisent d'autres méthodes de gestion des ressources du serveur (par exemple WebDAV).

Identification

HTTP permet l'identification du visiteur par transmission d'un nom et d'un mot de passe. Il existe 2 modes d'identification : Basic et Digest (RFC 2617). Le premier mode transmet le mot de passe en clair, et ne doit donc être utilisé qu'avec le protocole HTTPS. Le deuxième mode permet une identification sans transmettre le mot de passe en clair. L'identification est cependant souvent effectuée par une couche applicative supérieure à HTTP.

HTTP 0.9


Au début du World Wide Web, il était prévu d'ajouter à HTTP des capacités de négociation de contenu, en s'inspirant notamment de MIME. En attendant, le protocole HTTP 0.9 était extrêmement simple.
  1. connexion du client HTTP
  2. envoi d'une requête de méthode GET
  3. réponse du serveur HTTP
  4. le serveur ferme la connexion pour signaler la fin de la réponse.
Requête : GET /page.html La méthode GET est la seule possible. Le serveur reconnaît qu'il a affaire à une requête HTTP 0.9 au fait que la version n'est pas précisée suite à l'URI.

Réponse : <TITLE>Example</TITLE> <P>Ceci est une page d'exemple.</P> Pour répondre à une requête HTTP 0.9, le serveur envoie directement le contenu de la réponse, sans méta-données. Il ne doit jamais se comporter ainsi pour les requêtes HTTP de version supérieure.

HTTP 1.0


Le protocole HTTP 1.0, décrit dans le RFC 1945, prévoit l'utilisation d'en-têtes inspirés de MIME. La gestion de la connexion reste identique à HTTP 0.9 : le client établit la connexion, envoie une requête, le serveur répond et ferme immédiatement la connexion. Des expérimentations de connexion persistante ont été effectuées, mais cela n'a été définitivement mis au point qu'avec HTTP 1.1.

Requête : GET /page.html HTTP/1.0 Host: example.com Referer: http://example.com/ User-Agent: CERN-LineMode/2.15 libwww/2.17b3 La version du protocole HTTP est précisée suite à l'URI. La requête doit être terminée par un double retour à la ligne (CRLFCRLF). HTTP 1.0 supporte aussi les méthodes HEAD et POST. On constate l'usage d'en-têtes inspirés de MIME pour transférer les méta-données :

Host:Permet de préciser le site Web concerné par la requête, ce qui est nécessaire pour un serveur hébergeant plusieurs sites à la même adresse IP (name based virtual host, hôte virtuel basé sur le nom). C'est le seule en-tête réellement important.
Referer:Indique l'URI du document qui a donné un lien sur la ressource demandée. Cet en-tête permet aux webmasters d'observer d'où viennent les visiteurs.
User-Agent:Indique le logiciel utilisé pour se connecter. Il s'agit généralement d'un navigateur Web ou d'un robot d'indexation.

Réponse : HTTP/1.0 200 OK Date: Fri, 31 Dec 1999 23:59:59 GMT Server: Apache/0.8.4 Content-Type: text/html Content-Length: 59 Expires: Sat, 01 Jan 2000 00:59:59 GMT Last-modified: Fri, 09 Aug 1996 14:21:40 GMT <TITLE>Example</TITLE> <P>Ceci est une page d'exemple.</P>

La première ligne donne de code de statut HTTP (200 dans ce cas).

Date:Moment auquel le message est généré.
Server:Indique quel modèle de serveur HTTP répond à la requête.
Content-Length:Indique la taille en octets de la ressource.
Content-Type:Indique le type MIME de la ressource.
Expires:Indique le moment après lequel la ressource devrait être considérée obsolète ; permet aux navigateurs Web de déterminer jusqu'à quand garder la ressource en mémoire cache.
Last-Modified:Indique la date de dernière modification de la ressource demandée.

HTTP 1.1


Le protocole HTTP 1.1 est décrit par le RFC 2616 qui rend le RFC 2068 obsolète. Par défaut, HTTP 1.1 utilise des connexions persistentes, autrement dit la connexion n'est pas immédiatement fermée après une requête, mais reste disponible pour une nouvelle requête. On appelle souvent cette fonctionnalité keep-alive. Il est aussi permis à un client HTTP d'envoyer plusieurs requêtes sur la même connexion sans attendre les réponses. On appelle cette fonctionnalité pipelining. La persistence des connexions permet d'accélérer le chargement de pages contenant plusieurs ressources, tout en diminuant la charge du réseau. La gestion de la persistence d'une connexion est gérée par l'en-tête Connection.

HTTP 1.1 supporte la négociation de contenu. Un client HTTP 1.1 peut accompagner la requête pour une ressource d'en-têtes indiquant quels sont les langues et formats de données préférés. Il s'agit des en-têtes dont le nom commence par Accept-.

Les en-têtes supplémentaires supportés par HTTP 1.1 sont :

Connection:Cet en-tête peut être envoyé par le client ou le serveur et contient une liste de nom spécifiant les options à utiliser avec la connexion actuelle. Si une option possède des paramètres ceux-ci sont spécifiés par l'en-tête portant le même nom que l'option (Keep-Alive par exemple, pour spécifier le nombre maximum de requêtes par connexion). Le nom close est reservé pour spécifier que la connexion doit être fermée après traitement de la requête en cours.
Accept:Cet en-tête liste les types MIME de contenu acceptés par le client. Le caractère étoile * peut servir à spécifier tous les types / sous-types.
Accept-Charset:Spécifie les encodages de caractères acceptés.
Accept-Language:Spécifie les langages acceptés.

L'ordre de préférence de chaque option (type, encodage ou langage) est spécifié par le paramètre optionnel q contenant une valeur décimale entre 0 (inacceptable) et 1 (acceptable) inclus (3 décimales maximum après la virgule), valant 1 par défaut.

HTTPS


HTTPS (avec S pour secured, soit « sécurisé ») est la variante de HTTP basée sur les protocoles SSL ou TLS. Il permet au visiteur de vérifier l'identité du site auquel il accède grâce à un certificat d'authentification. Il permet également de chiffrer la communication. Il est généralement utilisé pour les transactions financières en ligne : commerce électronique, banque en ligne, courtage en ligne, etc.

Le HTTPS utilise le port IP 443 par défaut. La RFC 2818 définit le protocole HTTPS.

Voir aussi


Liens internes

Liens externes

Protocole réseau | Standard Internet | Standards du Web

HTTP | Protocol de transferència d'hipertext | HTTP | HTTP | Hypertext Transfer Protocol | Hypertext Transfer Protocol | Hiperteksto-Transiga Protokolo | Hypertext Transfer Protocol | Hypertext Transfer Protocol | HTTP | HTTP | Prótacal Aistrithe Hipirtéacs | HTTP | HyperText Transfer Protocol | HTTP | HTTP | HTTP | Hypertext Transfer Protocol | HTTP | Hypertext Transfer Protocol | HTTP | HTTP | Hypertext Transfer Protocol | Hypertext Transfer Protocol | HTTP | HTTP | Protocolo de Transferência de Hipertexto | HTTP | HTTP | HTTP | Hypertext Transfer Protocol | HTTP | HTTP | HyperText Transfer Protocol | HTTP | HTTP | HTTP | 超文本传输协议

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Hypertext Transfer Protocol".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld