Quelle est la différence entre le côté serveur cookie et côté client cookie?
Quelle est la différence entre la création de cookies sur le serveur et sur le client? Sont ces appelé serveur de cookies côté client et côté des cookies? Est-il un moyen de créer des cookies qui ne peuvent être lus sur le serveur ou sur le client?
- Il n'y a pas une telle chose comme "côté serveur cookie' vs 'côté client cookie". Il y a seulement des cookies, des paires nom/valeur envoyée dans les en-têtes HTTP, avec à la fois les demandes et les réponses.
- Éventuellement référencement des variables de Session, qui contiennent des données sur le serveur. Habituellement, il ya toujours un identifiant de session qui est tenu comme un cookie.
- En toute probabilité, la question se réfère aux différentes façons de les cookies sont codées sur le côté serveur (c'est à dire la façon dont ils sont codés dans le "Cookie" et "Set-Cookie" en-tête de réponse) et sur le côté client (c'est à dire la façon dont ils sont codés dans le "Cookie" en-tête de requête - variable $Path et tout ce jazz). Voir RFC 2109
Vous devez vous connecter pour publier un commentaire.
COOKIES HTTP
Les Cookies sont des paires clé/valeur utilisés par les sites web de stocker des informations d'état sur le navigateur.
Disons que vous avez un site web (example.com), lorsque le navigateur demande une page web, le site web peut envoyer des cookies pour stocker des informations sur le navigateur.
Navigateur demande exemple:
Exemple de réponse du serveur:
Ici deux témoins foo=10 et bar=20 sont stockés sur le navigateur. Le second viendra à échéance le 30 septembre.
À chaque demande ultérieure, le navigateur va envoyer les cookies sur le serveur.
SESSIONS: côté Serveur cookies
Côté serveur cookies sont connus comme des "sessions". Le site web, dans ce cas, les magasins un seul cookie sur le navigateur contenant un Identifiant de Session unique. Les informations d'état (foo=10 et bar=20 ci-dessus) sont stockés sur le serveur et l'Identifiant de Session est utilisé pour faire correspondre la demande avec les données stockées sur le serveur.
Des exemples de l'utilisation de la
Vous pouvez utiliser à la fois les sessions et les cookies pour stocker: l'authentification de données, les préférences de l'utilisateur, le contenu d'un tableau dans un site e-commerce, etc...
Avantages et les Inconvénients
Ci-dessous les avantages et inconvénients des solutions. Ce sont les premiers qui me vient à l'esprit, il y a sûrement d'autres.
Cookie Pour:
Cookie Contre:
Session Pour:
Session Inconvénients:
secure
?Tu veux sans doute dire la différence entre Seulement les cookies Http et leur contre-partie?
Http Uniquement les cookies ne sont pas accessibles (lu ou écrit) dans le côté client en JavaScript, uniquement côté serveur. Si le Http Seule option n'est pas activée, ou le cookie est créé dans (côté client) de JavaScript, les cookies peuvent être lues et écrites dans (côté client) du JavaScript côté serveur.
Tous les cookies sont client et serveur
Il n'y a pas de différence. Régulièrement un cookie peut être réglé côté serveur ou côté client. Le "classique" cookie sera envoyé avec chaque demande. Un cookie est défini par le serveur, sera envoyé au client, dans une réponse. Le serveur n'envoie le cookie lorsqu'il est explicitement défini ou modifié, alors que le client envoie le cookie sur chaque demande.
Mais essentiellement, c'est le même cookie.
Mais, le comportement peut changer
Un cookie est fondamentalement un
name=value
paire, mais après la valeur peut être un tas de semi-colon séparés attributs qui affectent le comportement du témoin si il est donc mis en œuvre par le client (ou le serveur).Ces attributs peuvent être de durée de vie, le contexte et les divers paramètres de sécurité.
HTTP seule (n'est pas serveur uniquement)
L'un de ces attributs peuvent être définis par un serveur pour indiquer que c'est un cookie HTTP uniquement. Cela signifie que le cookie est envoyé en arrière et en avant, mais il ne sera pas disponible en JavaScript. Notez, cependant, que le cookie est toujours là! C'est seulement un construit dans la protection dans le navigateur, mais si quelqu'un serait d'utiliser un ridiculement vieux navigateur comme IE5, ou certains client personnalisé, ils peuvent lire le cookie!
De sorte qu'il semble comme il y a des "cookies de serveur", mais il n'existe pas réellement. Ces cookies sont toujours envoyé au client. Sur le client, il n'existe aucun moyen pour empêcher un témoin d'être envoyé au serveur.
Solutions pour atteindre " seulement-ness
Si vous souhaitez stocker une valeur uniquement sur le serveur, ou uniquement sur le client, alors vous auriez besoin d'un autre type de stockage, comme un fichier ou une base de données sur le serveur, ou le Stockage Local sur le client.
document.cookie="foo=bar"
suivie parfetch("/foobar", {credentials: 'include'} )
il n'y a pas de cookie envoyé contenantfoo=bar
. Juste essayé ce code directement sur ce site en utilisant DevTools et la console.Oui, vous pouvez créer des cookies qui peuvent être lus uniquement sur le côté serveur. Ces derniers sont appelés "HTTP Uniquement" des cookies, comme expliqué dans d'autres réponses déjà
Non, il n'existe aucun moyen (que je connais) pour créer des "cookies" qui peut être lu que sur le côté client. Les Cookies sont destinées à faciliter la communication client-serveur.
MAIS, si vous voulez quelque chose COMME "client seulement-cookies" il y a une réponse simple: Utiliser le "Stockage Local".
Local de Stockage est en fait la syntaxe est plus simple à utiliser que les cookies. Un bon résumé simple de cookies vs local de stockage peut être trouvé à:
https://courses.cs.washington.edu/courses/cse154/12au/lectures/slides/lecture21-client-storage.shtml#slide8
Un point: Vous pouvez utiliser les cookies créés en JavaScript pour stocker GUI de choses se rapportant à vous seulement besoin sur le côté client. MAIS le cookie est envoyé au serveur pour CHAQUE demande, il devient une partie de la http-en-têtes de demande donc de faire la demande de contenir plus de données et donc plus lent à envoyer.
Si votre page a 50 ressources comme des images et la css de fichiers et les scripts alors le cookie est (généralement) envoyé avec chaque demande. En savoir plus sur ce en Est-ce que chaque requête web envoyer les cookies de votre navigateur?
Stockage Local ne dispose pas de ces données-transfert des inconvénients, il n'envoie pas de données. Il est grand.