Cookie 是浏览器访问服务器后,服务器传给浏览器的一段数据。浏览器会将这段数据(即Cookie)保存下来,之后浏览器每次访问服务器,都会将Cookie发向服务端;
设置Cookie
当服务器是在收到HTTP请求时,通过在响应头里面添加一个Set-Cookie
选项,来让浏览器收到响应后保存Cookie的,设置cookie时的参数包括以下:
1.Path
:定义了Cookie的作用域:即Cookie应该发送给哪些URL;如果设置了Path=/docs
,则子路径也会被匹配,如:Path=/docs/first
、Path=/docs/second
;
2.Expires
(一个特定的过期时间) 和 maxAge
(有效期): 告诉浏览器 Cookie 什么时候过期;比如MDN上面的例子:
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;
如果没有设置过期时间,那么浏览器关闭之后它会被自动删除;
3.Secure
:设置了Secure
,这个Cookie只能用https协议发送给服务器,用http协议无法发送;
4.HttpOnly
: 通过JavaScript的 document.cookie
API无法访问带有 HttpOnly
标记的Cookie;
Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT; Secure; HttpOnly
Cookie的用途
Cookie的其中一个用途是用来标识用户。当用户访问网站的登录页面时,Web服务器通常会根据Cookie来识别是用户A还是用户B;是否是已经登陆或登出的状态;
还可以根据Cookie来记住关于用户的历史信息,以便返回该用户的相关内容;比如用户购物车内的商品类型数量、游戏分数或者其他信息;
查看或者删除Cookie
可以在开发者工具的 Application
选项下的左边菜单栏中看到 Cookies
选项,点击该选项就能查看该域名下的所有Cookie;删除了这些Cookie,那么已登陆的用户再次刷新时就需要重新登陆一遍了;