From 720a3aa932690e7c6f1cf32e6b29ac3f8abc74ef Mon Sep 17 00:00:00 2001 From: Alexander Heß <44900696+CreaTorAlexander@users.noreply.github.com> Date: Mon, 12 Apr 2021 13:29:06 +0200 Subject: Correction of the typo, Fixes #362 (#406) * Correction of the typo, Fixes #362 * FIX: Major senteces fix and structure update * FIX: Minor typo fix * FIX: Cleaning missing sentences with Grammarlecte, update 1 block from US * Review - minor rewordings/typos - gaps vs. en-us Co-authored-by: tristantheb Co-authored-by: julieng --- files/fr/web/http/headers/set-cookie/index.html | 250 +++++++++++++----------- 1 file changed, 133 insertions(+), 117 deletions(-) (limited to 'files/fr') diff --git a/files/fr/web/http/headers/set-cookie/index.html b/files/fr/web/http/headers/set-cookie/index.html index fa24cfedf4..5326802c98 100644 --- a/files/fr/web/http/headers/set-cookie/index.html +++ b/files/fr/web/http/headers/set-cookie/index.html @@ -6,31 +6,41 @@ tags: - HTTP - Reference - Response - - TopicStub - header - samesite translation_of: Web/HTTP/Headers/Set-Cookie --- -

L'entête de réponse HTTP Set-Cookie est utilisé pour envoyer un cookie depuis le serveur à l'agent utilisateur pour qu'il puisse le renvoyer dans l'avenir.

+
{{HTTPSidebar}}
+ +

L'en-tête de réponse HTTP Set-Cookie est utilisé pour envoyer un cookie depuis le serveur à l'agent utilisateur afin qu'il puisse le renvoyer dans l'avenir. Pour envoyer plusieurs cookies, on enverra plusieurs en-têtes Set-Cookie dans la même réponse.

+ +
+

Avertissement :

+

Les navigateurs empêchent le code JavaScript front-end d'accéder à l'en-tête Set-Cookie, comme l'exige la spécification Fetch, qui définit Set-Cookie comme un nom d'en-tête de réponse interdit qui doit être filtré de toute réponse exposée au code front-end.

+

Pour plus d'information, voir le guide sur les cookies HTTP.

- - - - - - - - - - + + + + + + + + + + + + + +
Type de l'entête{{Glossary("Response header")}}
{{Glossary("Forbidden header name")}}no
Type d'en-têteEn-tête de réponse
Nom d'en-tête interditNon
Nom d'en-tête de réponse interditOui
-

Syntaxe

+

Syntaxe

-
Set-Cookie: <cookie-name>=<cookie-value>
+
Set-Cookie: <cookie-name>=<cookie-value>
 Set-Cookie: <cookie-name>=<cookie-value>; Expires=<date>
 Set-Cookie: <cookie-name>=<cookie-value>; Max-Age=<non-zero-digit>
 Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value>
@@ -42,109 +52,117 @@ Set-Cookie: <cookie-name>=<cookie-value>; SameSite=Strict
 Set-Cookie: <cookie-name>=<cookie-value>; SameSite=Lax
 Set-Cookie: <cookie-name>=<cookie-value>; SameSite=None
 
-// Plusieurs directives sont aussi pussibles, par exemple:
-Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value>; Secure; HttpOnly
-
+// L'usage d'attributs multiples est également possible, par exemple : +Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value>; Secure; HttpOnly
-

Attributs

+

Attributs

-
<cookie-name>=<cookie-value>
-
Un cookie commence avec la paire nom-valeur: -
    -
  • Un <cookie-name> peut-être de n'importe que caractères US-ASCII, à part les caractères de contrôle, d'espace, de tabulation et les caractères de séparation: ( ) < > @ , ; : \ " / [ ] ? = { }.
  • -
  • Un <cookie-value> peut éventuellement être entouré de doubles guillemets et inclut tout les caractères US-ASCII sauf les caractères de contrôle, {{glossary("Whitespace")}}, doubles guillemets, virgule, point-virgule et antislash. Encodage: plusieurs implémentations font un codage d'URL, cependant ce n'est pas obligatoire par la spécification RCF même si cela peut aider pour avoir des caractères permis.
  • -
  • __Secure- préfixe {{non-standard_inline}}: Les cookies commençant par __Secure- (le tiret fait partit du préfixe) doivent être définit avec le drapeau secure depuis une page sécurisée (HTTPS).
  • -
  • __Host- préfixe {{non-standard_inline}}: Les cookies commençant par __Host- doivent être définit avec le drapeau secure, depuis une page sécurisée (HTTPS), ne doivent pas avoir de domaine spécifié (et donc pas envoyé à un sous-domaine) et le chemin doit être /.
  • -
-
-
Expires=<date> {{optional_inline}}
-
-

Le temps de vie maximal d'un cookie sous la forme d'une Date HTTP. Voir {{HTTPHeader("Date")}} pour le format requis.

- -

Si non spécifié, le cookie devient un cookie de session. Une session finit quand le client s'arrête et les cookies de sessions seront supprimés.

- -
-

Attention: Plusieurs navigateurs ont un système de récupération de session qui enregistre les onglets et les restaure quand le navigateur redémarre. Les cookies de session seront aussi restaurés comme si le navigateur ne s'était jamais arrêté.

-
- -

Quand la date expire, la date limite est relative au client qui le supprime, pas le serveur.

-
-
Max-Age=<number> {{optional_inline}}
-
Le nombre de secondes avant son expiration. Une valeur nulle ou négative fera expirer immédiatement le cookie. Si il y a Expires et Max-Age configuré, Max-Age sera prioritaire.
-
Domain=<domain-value> {{optional_inline}}
-
Le domaine où le cookie sera envoyé. -
    -
  • Si omis, la valeur par défaut sera l'hôte de l'URL du document courant. Les sous domaines ne seront pas inclus.
  • -
  • Contrairement aux anciennes spécifications, le point au début dans les noms de domaines (.example.com) est ignoré.
  • -
  • Plusieurs valeurs de domaine ne sont pas permis. Si un nom de domaine est spécifié, les sous domaines sont toujours inclus.
  • -
-
-
Path=<path-value> {{optional_inline}}
-
Un chemin doit exister dans l'URL de requête, ou le navigateur ne va pas envoyer d'entête Cookie.
-
La barre oblique (/) est interprétée comme un séparateur de répertoire. Les sous répertoires sont inclus, par exemple: pour Path=/docs les répertoires /docs, /docs/Web/ et /docs/Web/HTTP sont concernés.
-
Secure {{optional_inline}}
-
Un cookie sécurisé est envoyé uniquement si la requête est fait en https:. Cependant des informations confidentielles ne devraient jamais être enregistrées dans un cookie classique, en effet le mécanique est non sécurisé et ne chiffre aucune information. -

Note: Les sites non sécurisés (http:) ne peuvent plus définir des cookie «Secure» désormais (depuis Chrome 52+ et Firefox 52+).

-
-
HttpOnly {{optional_inline}}
-
Empêche JavaScript d'accéder au cookie; par exemple, au travers de la propriété {{domxref("Document.cookie")}}, de l'API {{domxref("XMLHttpRequest")}} ou de l'API {{domxref("Request")}}. Cela protège des attaques cross-site scripting ({{Glossary("XSS")}}).
-
SameSite=<samesite-value> {{optional_inline}}
-
-
    -
  • Strict: Le navigateur envoie le cookie uniquement pour les requêtes sur le même site (c'est à dire, les requêtes où le cookie a été défini). Si la requête vient d'une autre URL que celle courante, aucun cookie avec d'attribut SameSite=Strict n'est envoyé.
  • -
  • Lax: Le cookie n'est pas envoyé pour des requêtes croos-site, comme le chargement d'image ou de cadre, mais est envoyé quand un utilisateur va sur une autre site, comme lorsqu’il suit un lien.
  • -
  • None: Le navigateur envoie le cookie à la fois pour les requêtes cross-site et same-site.
  • -
- -

S'assurer qu'un cookie ne peut pas être envoyé avec des requêtes cross-origin empêche une partie des attaques Cross-Site Request Forgery ({{Glossary("CSRF")}}).

- -

Les navigateurs sont en migration pour que par défaut (en) SameSite=Lax. Si un cookie est doit être envoyé en cross-site, définissez explicitement la valeur None. Cette valeur nécessite l’attribut Secure.

-
+
<cookie-name>=<cookie-value>
+
Un cookie commence par une paire nom-valeur: +
    +
  • Le nom porté par <cookie-name> peut-être composé de n'importe quels caractères ASCII, à l'exception des caractères de contrôle, d'espace, de tabulation et des caractères de séparation suivants : ( ) < > @ , ; : \ " / [ ] ? = { }.
  • +
  • La valeur, <cookie-value>, peut éventuellement être entourée de guillemets doubles et peut être composée de n'importe quel caractère ASCII à l'exception des caractères de contrôle, des blancs, des guillemets doubles, d'une virgule, d'un point-virgule ou d'une barre oblique inversée (backslash). Encodage : de nombreuses implémentations encodent les caractères d'URL (URL-encoding) bien que ce ne soit pas nécessaire selon la RFC. Une telle transformation facilite tout de même l'utilisation de caractères autorisés.
  • +
  • Le préfixe __Secure- : les cookies commençant par __Secure- (le tiret fait partie du préfixe) doivent être définis avec le drapeau secure depuis une page sécurisée (HTTPS).
  • +
  • Le préfixe __Host- : Les cookies commençant par __Host- doivent être définis avec le drapeau secure, depuis une page sécurisée (HTTPS), ne doivent pas avoir de domaine spécifié (et donc pas envoyé à un sous-domaine) et le chemin doit être /.
  • +
+
+
Expires=<date> {{optional_inline}}
+
+

Le temps de vie maximal d'un cookie sous la forme d'une date HTTP. Voir Date pour le format requis.

+ +

Si non spécifié, le cookie devient un cookie de session. Une session finit quand le client s'arrête, les cookies de sessions sont alors supprimés à ce moment.

+ +
+

Attention :

+

Plusieurs navigateurs ont un système de récupération de session qui enregistre les onglets et les restaure quand le navigateur redémarre. Les cookies de session seront aussi restaurés comme si le navigateur ne s'était jamais arrêté.

+
+ +

Quand une telle date de péremption est indiquée, elle est relative au client et pas au serveur.

+
+
Max-Age=<number> {{optional_inline}}
+
Le nombre de secondes avant son expiration. Une valeur nulle ou négative fera expirer immédiatement le cookie. Si Expires et Max-Age sont configurés, Max-Age sera prioritaire.
+
Domain=<domain-value> {{optional_inline}}
+
Le domaine où le cookie sera envoyé. +
    +
  • Si omis, la valeur par défaut sera l'hôte de l'URL du document courant. Les sous-domaines ne seront pas inclus.
  • +
  • Contrairement aux anciennes spécifications, le point au début dans les noms de domaines (.example.com) est ignoré.
  • +
  • Plusieurs valeurs de domaine ne sont pas permises. Si un nom de domaine est spécifié, les sous domaines sont toujours inclus.
  • +
+
+
Path=<path-value> {{optional_inline}}
+
Un chemin qui doit exister dans l'URL de la requête ou le navigateur n'enverra pas d'en-tête Cookie correspondante par la suite.
+
La barre oblique (/) est interprétée comme un séparateur de répertoire. Les sous-répertoires sont inclus, par exemple: pour Path=/docs les répertoires /docs, /docs/Web/ et /docs/Web/HTTP sont concernés.
+
Secure {{optional_inline}}
+
Un cookie sécurisé est envoyé uniquement si la requête est faite en https: (sauf pour localhost). Cependant des informations confidentielles ne devraient jamais être enregistrées dans un cookie classique, en effet le mécanique est non sécurisé et ne chiffre aucune information. +

Note: Les sites non sécurisés (http:) ne peuvent plus définir des cookies Secure désormais (depuis Chrome 52+ et Firefox 52+). Depuis Firefox 75, cette restriction ne s'applique pas pour localhost.

+
+
HttpOnly {{optional_inline}}
+
Empêche JavaScript d'accéder au cookie; par exemple, au travers de la propriété Document.cookie, de l'API XMLHttpRequest ou de l'API Request. Cela protège des attaques cross-site scripting (XSS).
+
SameSite=<samesite-value> {{optional_inline}}
+
Contrôle si un cookie est envoyé avec les requêtes d'origine croisée, offrant ainsi une certaine protection contre les attaques de falsification de requêtes inter-sites (CSRF). +
+

Les normes relatives aux Cookies SameSite ont récemment changé de telle sorte que :

+ +
    +
  1. Le comportement d'envoi des cookies si SameSite n'est pas spécifié est SameSite=Lax. Auparavant, le comportement par défaut était que les cookies étaient envoyés pour toutes les requêtes.
  2. +
  3. Les cookies avec SameSite=None doivent désormais également spécifier l'attribut Secure (c'est-à-dire qu'ils nécessitent un contexte sécurisé).
  4. +
+ +

Les options ci-dessous couvrent le nouveau comportement. Voir le tableau Compatibilité des navigateurs pour des informations sur la mise en œuvre spécifique des navigateurs (lignes : « SameSite : Defaults to Lax » et « SameSite : Secure context required »).

+
+ Les options sont : + +
    +
  • Strict : le navigateur envoie le cookie uniquement pour les demandes provenant du même site (c'est-à-dire les demandes provenant du même site qui a défini le cookie). Si la demande provient d'une URL différente de l'URL actuelle, aucun cookie avec l'attribut SameSite=Strict n'est envoyé.
  • +
  • Lax : Le cookie n'est pas envoyé sur les requêtes inter-sites, telles que les appels pour charger des images ou des iframes, mais il est envoyé lorsqu'un utilisateur navigue vers le site d'origine à partir d'un site externe (par exemple, s'il suit un lien). C'est le comportement par défaut si l'attribut SameSite n'est pas spécifié.
  • +
  • None : Le navigateur envoie le cookie avec les requêtes inter-sites et les requêtes sur un même site. L'attribut Secure doit également être défini lorsque SameSite=None !
  • +
+
-

Exemples

+

Exemples

- + -

Les cookies de session sont supprimés quand le client s'éteint. Les cookies sont des cookies de session s'ils n'ont pas de directive Expires ou Max-Age.

+

Les cookies de session sont supprimés quand le client s'éteint. Les cookies sont des cookies de session s'ils n'ont pas de directive Expires ou Max-Age.

-
Set-Cookie: sessionId=38afes7a8
+
Set-Cookie: sessionId=38afes7a8
- + -

Au lien d'expirer quand le client s'éteint, le cookies permanent expirent à une date spécifique (Expires) ou après une valeur de temps (Max-Age).

+

Au lieu d'expirer lorsque le client est fermé, les cookies permanents expirent à une date spécifique (Expires) ou après une valeur de temps (Max-Age).

-
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT
-
+
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT
-
Set-Cookie: id=a3fWa; Max-Age=2592000
+
Set-Cookie: id=a3fWa; Max-Age=2592000
-

Domaines invalides

+

Domaines invalides

-

Un cookie pour un domaine qui n'inclut pas le serveur qui le défini doit être (en) rejeté par l'agent utilisateur.

+

Un cookie pour un domaine qui n'inclut pas le serveur qui le définit doit être rejeté par l'agent utilisateur.

Le cookie suivant sera rejeté si le serveur est hébergé sur originalcompany.com:

-
Set-Cookie: qwerty=219ffwef9w0f; Domain=somecompany.co.uk
+
Set-Cookie: qwerty=219ffwef9w0f; Domain=somecompany.co.uk

Un cookie pour un sous-domaine du domaine servi sera rejeté.

Le cookie suivant sera rejeté si le serveur est hébergé sur example.com:

-
Set-Cookie: sessionId=e8bb43229de9; Domain=foo.example.com
+
Set-Cookie: sessionId=e8bb43229de9; Domain=foo.example.com
- + -

Les cookies préfixés par __Secure- ou __Host- peuvent être utilisés seulement s'ils sont définits avec l'attribut secure depuis une origine sécurisée (HTTPS).

+

Les cookies préfixés par __Secure- ou __Host- peuvent être utilisés seulement s'ils sont définis avec l'attribut secure depuis une origine sécurisée (HTTPS).

-

De plus, les cookies avec le préfixe __Host- doivent avoir doivent avoir un path valant / (donc tout les chemins de l'hôte) et ne doit pas avoir d'attribut Domain.

+

De plus, les cookies avec le préfixe __Host- doivent avoir un path qui vaut / (donc tous les chemins de l'hôte) et ne doivent pas avoir d'attribut Domain.

-
-

Pour les clients qui n'implémentent pas les préfixes aux cookies, vous ne pouvez pas compter sur ses assurances, les cookies avec un préfixe seront toujours acceptés.

+
+

Attention :

+

Pour les clients qui n'implémentent pas les préfixes de cookies, vous ne pouvez pas compter sur ces contraintes, les cookies avec un préfixe seront toujours acceptés.

-
// Les deux sont acceptés s'ils viennent d'une origine sécurisée (HTTPS)
+
// Les deux sont acceptés s'ils viennent d'une origine sécurisée (HTTPS)
 Set-Cookie: __Secure-ID=123; Secure; Domain=example.com
 Set-Cookie: __Host-ID=123; Secure; Path=/
 
@@ -155,46 +173,44 @@ Set-Cookie: __Secure-id=1
 Set-Cookie: __Host-id=1; Secure
 
 // Rejeté à cause du domaine qui est spécifié
-Set-Cookie: __Host-id=1; Secure; Path=/; domain=example.com
-
+Set-Cookie: __Host-id=1; Secure; Path=/; domain=example.com
-

Spécifications

+

Spécifications

- - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
SpécificationTitre
{{RFC("6265", "Set-Cookie", "4.1")}}HTTP State Management Mechanism
draft-ietf-httpbis-rfc6265bis-05Cookie Prefixes, Same-Site Cookies, and Strict Secure Cookies
SpécificationTitre
{{RFC("6265", "Set-Cookie", "4.1")}}HTTP State Management Mechanism
draft-ietf-httpbis-rfc6265bis-05Cookie Prefixes, Same-Site Cookies, and Strict Secure Cookies
-

Compatibilité des navigateurs

- - +

Compatibilité des navigateurs

{{Compat("http.headers.Set-Cookie", 5)}}

-

Note de compatibilité

+

Note de compatibilité

    -
  • À partir de Chrome 52 et Firefox 52, les sites non sécurisés (http:) ne peuvent plus définir des cookies avec la directive Secure.
  • +
  • À partir de Chrome 52 et Firefox 52, les sites non sécurisés (http:) ne peuvent plus définir des cookies avec la directive Secure.
-

Voir aussi

+

Voir aussi

-- cgit v1.2.3-54-g00ecf