理解cookie

什么是cookie

客户端如果要向服务器发起请求,如果服务器需要记录该用户的状态,就使用response向客户端发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再次请求网站时,浏览器把请求的网站连同该Cookie一同提交给服务器。服务器检测该Cookie,来辨认用户的状态。

cookie机制

用户第一次访问并登陆一个网站时,cookie的设置以及发送会经历4个步骤:

  • 客户端发送一个请求到服务器
  • 服务器发送一个HttpResponse响应到客户端,其中包含Set-Cookie的头部
  • 客户端保存cookie,之后再向服务器发送请求时,HttpRequest请求会包含一个cookie的头部
  • 服务器返回响应数据
    理解cookie

cookie的属性

理解cookie

  • name字段:一个cookie的名称
  • value字段: 一个cookie的值
  • domain字段:可以访问此域名的cookie值
  • path字段:可以访问此cookie的页面路径,比如domain是abc.com,path是/test那么只有/test路径下的页面可以读取cookie
  • expires/Max-Age字段:为cookie失效时间。若设置其值为一个时间,那么当到达此时间后,此cookie失效。不设置的话,默认是Session,意思是cookie会和session一起失效。
  • size字段:此cookie的大小
  • httpOnly字段:若为true,则只有在http请求头中会带有cookie的信息,而不能通过document.cookie来访问此cookie
  • secure字段:是否只能通过https来传递此cookie.