cookie的原理

一般来说,Cookie通过HTTP Headers从服务器端返回到浏览器上。首先,服务器端在响应中利用Set-Cookie header来创建一个Cookie ,然后,浏览器在它的请求中通过Cookie header包含这个已经创建的Cookie,并且反它返回至服务器,从而完成浏览器的论证。
Cookie的保存方式

Internet Explorer 将站点的 Cookie 保存在文件名格式为 <user>@<domain>.txt 的文件中,其中 <user> 是您的帐户名。例如,如果您的名称为 user,您访问的站点为 www.nowamagic.net,那么该站点的 Cookie 将保存在名为 [email protected] 的文件中。(该文件名可能包含一个顺序的编号,如 [email protected] [1].txt。) Cookie 文本文件是与用户相关的,所以会按照帐户分别保存。
Cookie限制

一个 Cookie 会占用大约 50 个字符的基本空间开销(用于保存有效期信息等),再加上其中保存的值的长度,其总和接近 4K 的限制。大多数浏览器只允许每个站点保存 20 个 Cookie 。
为什么选择把信息保存到cookie中

这时会有二种解决方案:
1、多数的服务器会使用session复制的方法:当session的值被改变时,将它复制到其它机器上。这个方案又有两种具体的实现(也就是晓峰上次演示) ,一种是广播的方式,缺点:当访问量增大的时候 ,带宽增大,而且随着机器增加,网络负担成指数级上升,不具备高度可扩展性 ;另一种是TCP-ring的方式,也就是把集群中所有的服务器看成一个环,A->B->C->D->A,首尾相接,缺点:一是配置复杂;二是每增添/减少一台机器时,ring都需要重新调整,这将成为性能瓶颈;三是要求前端的Load Balancer具有相当强的智能,才能将用户请求分发到正确的机器上。
2、将session保存在单一的数据源中,这个数据源可被集群中所有的机器所共享 ,但带来的问题就是性能问题了。
解决方案:是把session以Cookie的形式保存在客户端。
优点:极高的扩展性和可用性
1、通过良好的编程,控制保存在cookie中的session对象的大小。/
2、通过加密和安全传输技术(SSL),减少cookie被破解的可能性。
3、只在cookie中存放不敏感数据,即使被盗也不会有重大损失。
控制cookie的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie。
缺点:
Cookie数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉。
安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。
有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。

时间: 2024-11-05 13:48:30

cookie的原理的相关文章

SYN Cookie的原理和实现

SYN Cookie的原理和实现

cookie注入原理及注入检测

通常我们的开发人员在开发过程中会特别注意到防止恶意用户进行恶意的注入操作,因此会对传入的参数进行适当的过滤,但是很多时候,由于个人对安全技术了解的不同,有些开发人员只会对get,post这种方式提交的数据进行参数过滤. 但我们知道,很多时候,提交数据并非仅仅只有get\post这两种方式,还有一种经常被用到的方式:request("xxx"),即request方法 通过这种方法一样可以从用户提交的参数中获取参数值,这就造成了cookie注入的最基本条件:使用了request方法,但是注

菜鸟详细解析Cookie注入原理

一.SQL注入原理 我以aspx为例,现在我们来研究下Cookie注入是怎么产生的,在获取URL参数的时候,如果在代码中写成Request["id"],这样的写法问题就出现了.我先普及下科普知识,在aspx中Request.QueryString["id"]用于接收get提交的数据,Request.Form["id"]用于接收post提交的数据.如果不指定使用QueryString还是Form接收数据,WEB服务是怎样读取数据的呢,他是先取GET

Session管理及Cookie应用原理

一.基于表单认证的标准规范尚未有定论,一般会用Cookie来管理Session(会话). 基于表单认证本身是通过服务器端的WEB应用,将客户端发送过来的用户名ID和密码与之前登陆过的信息做匹配来认证的. 但是,鉴于HTTP是无状态协议,之前已认证的用户状态无法通过协议层面保存下来.即无法实现状态管理,因此即使当改用户下一次继续访问,也无法区分他与其它的用户.于是,我们会使用Cookie来管理Session,以弥补HTTP协议中不存在的状态管理功能. 二.下图,展示了Session的管理及Cook

cookie mapping 原理理解

Cookie mapping技术 利用javascript跨域访问cookie之广告推广 原文地址:https://www.cnblogs.com/lavin/p/10110500.html

ASP.NET Cookie概念、CURD操作、原理、实际运用

会话就WEB开发来说,一个会话就是你通过浏览器与服务器之间的一次通话,只不过这种通话是以用浏览器浏览的方式来实现的. 就会话的应用来说,一般会话是用来识别用户的,比如你可以使用会话级变量记录当前用户已经输入的用户名密码,这样就不用他每次输入了,还可以用来记录一些其他的与当前这一次通话有关的信息.一旦你关闭了浏览 器,虽然会话没有结束,但是你重新打开浏览器时,已经不能再次利用上一次的会话了,它会新建一个会话.而服务器会根据预先的设置在超时后自动关闭会话,你也可以手动结束会话. 一.Cookie的基

PHP版本--HTTP session cookie原理及应用

PHP 的COOKIE cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制.     PHP在http 协议的头信息里发送cookie,因此  setcookie()函数必须在其它信息被输出到浏览器前调用,这和对header()函数的限制类似. ---------------------------------------------------------------------------------------------------------------------

LTPA Cookie原理

1. 什么是LTPA? Lightweight Third-Party Authentication (LTPA)是IBM Websphere和Domino产品中使用单点登录技术.当服务器配置好LTPA认证方式,用户通过浏览器成功登录后,服务器会自动发送一个session cookie给浏览器:此cookie中包含一个LTPA Token. 2. WebSphere部分 本部分描述适用于已实施WebSphere系列产品应用和Domino平台应用,或WebSphere与Domino之间已完成单点登

HTTP协议 (七) Cookie

Cookie是HTTP协议中非常重要的东西, 之前拜读了Fish Li 写的[细说Cookie], 让我学到了很多东西.Fish的这篇文章写得太经典了. 所以我这篇文章就没有太多内容了. 最近我打算写一个系列的HTTP文章,我站在HTTP协议的角度, 说说我对Cookie的理解. 阅读目录 Cookie是什么,有什么用,为什么要用到Cookie Cookie的分类 Cookie存在哪里 使用和禁用Cookie Fiddler查看HTTP中的Cookie 网站自动登陆的原理 截获Cookie,冒充