Skip to main content

Quelques notions sur HTTP

Le protocole HTTP est un protocole qui permet à un navigateur web de communiquer avec un serveur.

Il existe plusieurs méthodes / verbes HTTP :

  • GET : utilisé pour récupérer des données depuis le serveur (afficher une page, des ressources)
  • POST : utilisé pour envoyer des données vers le serveur (formulaire par exemple)
  • PUT : utilisé pour mettre à jour une donnée existante
  • DELETE : utilisé pour supprimer une donnée

Les méthodes PUT et DELETE ne sont pas utilisées dans le cadre d'une page web avec formulaire (<form>). Elles peuvent être par contre utilisées dans le cadre d'appels XHR via Javascript (Angular, React ...)

Une URL appelée depuis votre navigateur a la forme suivante :

GET https://monsite.com/path1/path2/page.extension?cle1=valeur1&cle2=valeur2

D'un point de vue du protocole :

GET /path1/path2/page.extension?cle1=valeur1&cle2=valeur2 HTTP/1.1
Host: monsite.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: fr-FR,en-US;q=0.5
Accept-Encoding: gzip, deflate, br
Cookie: auth=9973072f4d2903c24642a6bcaf7030be29d621f2;
  • Méthode HTTP : GET
  • Chemin/Path/URL : /path1/path2/page.extension
  • Paramètres HTTP (@RequestParam dans Spring) :?cle1=valeur1&cle2=valeur2
  • Headers ou entête :
    • Host: monsite.com
    • User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0

Une réponse HTTP a la forme suivante :

HTTP/1.1 200 OK
Date: Sat, 28 Mar 2020 11:22:39 GMT
Server: Apache/2.4.7 (Ubuntu)
Vary: Accept-Encoding
Content-Encoding: gzip
Strict-Transport-Security: max-age=1607000; includeSubDomains
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf8

<!DOCTYPE html>
<html>
<head>
<meta name="robots" content="noindex,nofollow">
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

Le code retour est indiqué sur la première ligne de la réponse. Les codes retours sont nombreux mais sont catégorisés :

  • 2xx : réponse correcte du serveur (200 OK, 201 Created, ...)
  • 3xx : redirection vers une autre page (avec le header Location pour la nouvelle adresse)
  • 4xx : mauvaise requête du client (404 Not Found, 403 Forbidden)
  • 5xx : erreur serveur (erreur côté back end)