Cookie 是一小段的文本信息(key-value格式)。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨别用户状态。
Cookie的机制
当用户第一次访问并登陆一个网站的时候,cookie的设置以及发送会经历以下4个步骤:
1,客户端发送一个请求到服务器
2,服务器发送一个HttpResponse响应到客户端,其中包含Set-Cookie的头部
3,客户端保存cookie,之后向服务器发送请求时,HttpResponse请求中会包含一个Cookie的头部
4,服务器返回响应数据
Cookie的应用
接口/类 | 说明 |
Cookie(String name,String value) | 构造器 |
setValue/getValue | 设置值/取出值 |
setMaxAge/getMaxAge | 生命周期 |
setPath/getPath | 生成Cookie的路径 |
setDomain/getDomain | Cookie域名设置 |
Cookie细节
一,Cookie不可夸域名性
浏览器判断一个网站是否能操作是依据网站的域名。所以一般来说,当我访问baidu的时候,浏览器只会把baidu颁发给Cookie带过去,而不会带上google的Cookie.
二,Cookie保存中文
三,Cookie的有效期
Cookie的有效期是通过setMaxAge()来设置的
1,如果MaxAge为正数,浏览器会把Cookie写到硬盘中,只要还在MaxAge秒之前,登陆网站时该Cookie就有效
2,如果MaxAge为负数,Cookie是临时性的,仅在本浏览器内有效,关闭浏览器Cookie就失效了,Cookie不会写到硬盘中。Cookie默认值就是-1。
3,如果MaxAge为0,则表示删除该Cookie。Cookie机制没有提供删除Cookie对应的方法,把MaxAge设置为0等同于删除Cookie.
四,Cookie和域名
cookie的domain属性决定运行访问Cookie的域名。domain的值规定为“.域名”
Cookie的隐私安全机制决定Cookie是不可跨域名的。也就是说www.baidu.com和www.google.com之间的Cookie是互补交接的。即使是同一级域名,不同二级域名也不能交接
五,Cookie和路径
Cookie的path属性决定允许访问Cookie的路径
一般地,Cookie发布出来,整个网页的资源都可以使用。