1. 如何理解Cookie?
答:我理解的Cookie,就是服务器端用来区分访问用户的,一个用户发出HTTP请求,
服务端判断这个用户是不是第一次访问,如果是新用户,那么就得先登记,
然后把这个用户的一些信息用Key-Value键值对的形式保存起来,
通过HTTP响应让用户带回客户端,让用户保存着,下次访问时,捎带着把信息也带过来,一看是老熟人,
后台就不用登记直接处理业务了,方便而有效率。
2.Http中Cookie的HttpOnly和secure属性
1 secure属性
当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,
也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,
如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。
2 HttpOnly属性
如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、
Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。
3.Cookie是什么?
cookie时当前识别用户,实现持久化会话的最好方式。
简单点说就是服务器知道正在和哪个客户端通信,以及保持与已识别出的客户端通信。
Cookie的基本思想就是让浏览器积累一组服务器特有的信息,每次访问服务器时都将这些信息提供给它。
4.Cookie能做什么?
对连接另一端的用户有更多的了解,并且能在用户浏览页面时对其进行跟踪。
5.Cookie是怎么分类的?
(1)会话cookie。临时cookie,记录了用户访问站点时的设置和偏好。用户退出浏览器时,会话cookie就被删除了。
(2)持久cookie。持久cookie的生存时间更长一些;它们存储在硬盘上,
浏览器退出,计算机重启时它们仍然存在。通常会用持久cookie维护某个用户会周期性访问的站点的配置文件或登录名。
唯一区别就是它们的过期时间。如果设置了Discard参数或没有设置Expires或没有设置Max-Age参数则说明这个cookie就是一个会话cookie。
6.Cookie的工作原理?
(1)用户首次访问Web站点时,Web服务器对用户一无所知。
(2)Web服务器通过Set-Cookie首部将cookie存放到浏览器中的cookie数据库中。
cookie中包含了N个键值对,例如Cookie: id=“1234”。cookie中可以包含任意信息,
但它们通常都只包含一个服务器为了进行跟踪而产生的独特的识别码。
(3)将来用户再次访问同一站点时,浏览器会从cookie数据库中挑中那个服务器设置的cookie,
并在cookie请求首部中(Cookie: id=“1234”)将其传回给服务器。
(4)服务器可以通过id="1234"这个键值对来查找服务器为其访问积累的信息(购物历史、地址信息等)。
注意:cookie并不仅限与ID号。很多Web服务器都会将信息直接保存在cooki中。
比如Cookie: name=“Tom”; phone=“111-2222”
7.Cookie是怎么存储的
浏览器负责存储cookie信息。不同的浏览器会以不同的方式来存储cookie。
有的浏览器用cookis.txt存储。
有的浏览器存储在高速缓存目录下独立的文本文件中。
8.每次访问网站时,是不是将所有的cookie都发送所有的站点?
不是,浏览器通常只向每个站点发送2~3个cookie。原因如下:
(1)对所有这些cookie字节进行传输会严重降低性能。
(2)cookie中包含的时服务器特有的名值对,对大部分站点来说,大多数cookie都只是无法识别的无用数据。
(3)将所有的cookie发送给所有站点会引发潜在的隐私问题,那些你并不信任的站点也会获得你只想发给其他站点的信息。
9.cookie与缓存怎么取舍?
cookie是私有的,浏览器不希望得到的cookie和其他浏览器的cookie相同。
一般缓存cookie图片而不缓存文本
10.cookie的缺点?
存在安全隐患。第三方Web站点使用持久cookie来跟踪用户就是对cookie一种最大的滥用。
将这种做法与IP地址和Referer首部信息结合在一起,
这些营销公司就可以构建起相当精确的用户档案和浏览模式信息。