Fondamentaux

HTTP et HTTPS

HTTP est le protocole utilisé pour échanger des données entre un navigateur et un serveur web. HTTPS ajoute TLS pour chiffrer et authentifier la communication.


Requête et réponse

Navigateur

Requête HTTP

Serveur web

Réponse HTTP

Navigateur

Exemple de requête :

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0

Une requête contient une méthode, une ressource, des en-têtes et parfois un corps.

Exemple de réponse :

HTTP/1.1 200 OK
Content-Type: text/html
Set-Cookie: session=abc; HttpOnly; Secure; SameSite=Lax

Une réponse contient un code d'état, des en-têtes et souvent un corps avec du HTML, du JSON, une image ou un fichier.


Méthodes HTTP

MéthodeFonctionÀ retenir
GETRécupérer des donnéesNe doit pas modifier l'état
POSTEnvoyer des donnéesSouvent utilisé pour créer ou déclencher une action
PUTRemplacer une ressourceIdempotent si bien utilisé
PATCHModifier partiellementUtile pour une mise à jour ciblée
DELETESupprimer une ressourceAction sensible à contrôler
HEADObtenir uniquement les en-têtesPratique pour tester

Le choix de la méthode ne suffit pas à sécuriser une action. Le serveur doit vérifier l'authentification, l'autorisation, les entrées et le contexte.


Headers utiles

HeaderDescription
HostNom du serveur
User-AgentNavigateur ou client utilisé
RefererPage d'origine
AuthorizationInformations d'authentification
CookieInformations de session
Content-TypeFormat envoyé ou reçu
X-Forwarded-ForAdresse IP d'origine derrière un proxy

Codes HTTP

FamilleSignification
2xxSuccès
3xxRedirection
4xxErreur côté client ou accès refusé
5xxErreur côté serveur

Codes fréquents :

CodeSignification
200Succès
301Redirection permanente
302Redirection temporaire
400Requête invalide
401Authentification nécessaire
403Accès interdit
404Ressource introuvable
429Trop de requêtes
500Erreur serveur

HTTP vs HTTPS

HTTP  → port 80  → non chiffré
HTTPS → port 443 → chiffré avec TLS

HTTPS protège contre l'interception du trafic et permet d'authentifier le serveur.

Il ne garantit pas que le site est honnête. Un site de phishing peut aussi avoir un certificat valide. HTTPS signifie surtout que la connexion est chiffrée et que le certificat correspond au nom présenté.


Cookies et sessions

Les cookies permettent au serveur de reconnaître un navigateur entre plusieurs requêtes.

Attributs importants :

AttributRôle
HttpOnlyRend le cookie inaccessible au JavaScript
SecureEnvoie le cookie uniquement en HTTPS
SameSiteRéduit certains risques CSRF
Max-AgeDéfinit une durée de vie

Un cookie de session volé peut permettre une usurpation de session. C'est pour cela qu'il doit être court, protégé et invalidé correctement à la déconnexion.


Headers de sécurité

HeaderRôle
Strict-Transport-SecurityForce HTTPS
Content-Security-PolicyRéduit certains risques d'injection
X-Frame-OptionsProtège contre le clickjacking
Set-CookieGère les cookies

Les cookies sensibles doivent utiliser Secure, HttpOnly et SameSite.

À retenir

HTTP décrit l'échange. HTTPS protège le transport. La sécurité applicative dépend aussi du code, des droits, des sessions, des logs et de la configuration serveur.

Précédent
Fondamentaux du web