一个Cookie实验引发的血案

问题:

     1:Cookie 存放在哪儿?客户端还是服务器?具体路径是什么?以什么样的方式储存?

     2:Cookie 都储存了些什么内容?其格式又如何?

     3:Cookie 能存放多大的内容?能有多少个Cookie?

     4:Cookie 的运行原理是什么?它是如何实现C/S交互的?

     5:Cookie 的安全性如何?

     6:Cookie 的使用场景?

     ......

     ......

     先给大家看一个试验:

    

     代码很简单,我一方面设置 Cookie ,另一方面读取 Cookie 。

     第一个循环,旨在测试 Cookie 的键值对里,值的长度。

     第二个循环,旨在测试可以设置多少个 Cookie 。

     第三个循环,旨在擦看 Cookie 的值。


     现在解答下上面的问题:

     1: Cookie 存放在客户端。以 txt 文件的形式保存。对于不同的OS和浏览器,其保存的路径可能有所不同。在此给出查看方式:【windows7,IE11和Chrome38】

    

     IE:Intertnet选项 --- 常规 --- 设置 --- 查看文件,路径:C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files

    

     chrome:更多工具 --- 清除浏览数据 --- 内容设置 --- 所有 Cookie 和网站数据。

     文件名: Cookie :使用本机的用户名@域名的形式。如:Cookie:administrator@localhost/


     2: Cookie 以键值对的形式,储存了在服务器指定的用于交互的数据。形式:

     IE中的情况:

    

     第一行是键名,第二行是值,第三行是域名。第四行是个状态码,下面是些创建时间和过期时间。

     chrome中的情况更为简单:

    

     至于,创建时间和过期时间,在php中可以指定,此处不再说明。

     3: Cookie 能放多大内容?

     根据第一个循环的测试,大概能设置4096个字符,也就是4KB,其中包含 Cookie 文件中键名,域名,状态码,时间等信息。据测试,在 Cookie 的值部分,能接受4000的字符所有的字符串。

            Cookie  能有多少个?

     根据第二个循环,在设置256个具有4000字符串的值的 Cookie 是允许的。很可能,系统并没有限制某个域名下 Cookie 文件的个数问题。

    

     4: Cookie 的运行原理:

     每一个 Cookie 都有一个域名【这里是一级域名,也可能是二级域名】,当我们访问此域名下的 URL 时,在HTTP的请求数据包中,则会将此域名的所有 Cookie 文件数据附加上,类似于POST数据,会被php接受到$_COOKIE数组中。

    

     很明显,使用的协议依旧是HTTP协议。

     【此处另支出,当一个域名下的COOKIE文件过多,或者文件中的值数据太大,具体多少不清楚,会造成,发送的HTTP请求需要携带大量的COOKIE数据,造成服务器无法解析。此种情况好像并不只是影响本次请求,甚至发生错误后造成浏览器无法正常使用。即使结束本次回话依旧无法使用,只能重启。。。话说,写到这里,我已经重启了5次,还好CSDN自动保存,不至于损失过大。。。】

     5:安全性:

     很显然,COOKIE文件保存到里浏览器,并非在服务器端,并不是绝对安全的。当然,重要的数据,我们也不会以cookie的形式保存。

     6:使用场景:

     举例:记住登陆,上次浏览记录,购物车等等,处理一些安全性不太高的业务逻辑时,cookie也是十分好用的。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值