美文网首页
认识cookie

认识cookie

作者: _敏讷 | 来源:发表于2017-09-13 21:25 被阅读0次

什么是cookie?

cookie的英文原意是小饼干
是为了应对HTTP是无状态协议这一特性而创造出来的方法,用于在客户端保留信息并在下次请求传回服务器
服务器响应(response)的http报文中可以添加set-cookie字段, 通过设置该字段中的属性可以控制客户端存储cookie信息
存有cookie信息的客户端会在后续请求(request)中加入cookie字段

cookie中的属性

除键值对外都不是必填项,各属性之间通过一个分号和一个空格隔开

"key=value; expires=Thu, 25 Feb 2016 04:18:00 GMT; domain=ppsc.sankuai.com; path=/; secure; HttpOnly"
  1. key=value
    cookie键值对(必需项)
  2. expires=DATE
    cookie的有效期(默认为浏览器关闭为止)
    必须是GMT格式的时间

expires 是 http/1.0协议中的选项,在新的http/1.1协议中expires已经由 max-age 选项代替,两者的作用都是限制cookie 的有效时间。expires的值是一个时间点(cookie失效时刻= expires),而max-age 的值是一个以秒为单位时间段(cookie失效时刻= 创建时刻+ max-age)。
另外,max-age 的默认值是 -1(即有效期为 session );若max-age有三种可能值:负数、0、正数。负数:有效期session;0:删除cookie;正数:有效期为创建时刻+ max-age

  1. path=路径
    用于限制cookie的发送范围的文件目录(若不指定则默认为文档所在的文件目录)
  2. domain=域名
    指定cookie适用对象的域名(若不指定则默认为创建cookie的服务器的域名)
    eg: Set-Cookie: name=value;secure
    上例仅在使用HTTPS的情况下才进行cookie的回收

特别说明1:发生跨域xhr请求时,即使请求URL的域名和路径都满足 cookie 的 domain 和 path,默认情况下cookie也不会自动被添加到请求头部中。若想知道原因请阅读本文最后一节)
特别说明2:domain是可以设置为页面本身的域名(本域),或页面本身域名的父域,但不能是公共后缀 public suffix。举例说明下:如果页面域名为 www.baidu.com, domain可以设置为“www.baidu.com”,也可以设置为“baidu.com”,但不能设置为“.com”或“com”。

  1. secure
    用于限制cookie在HTTPS安全链接下使用
  2. HttpOnly?
    作用是使JavaScript脚本无法获得cookie,防止XSS对cookie的信息窃取
    添加了HttpOnly这条属性后,js中的document.cookie无法取到cookie值

在服务端设置cookie

在response header的set-cookie字段设置, 每个字段对应一个cookie, 存储格式为字符串
在服务端可以设置cookie的全部6个属性

在客户端设置cookie

使用document.cookie

document.cookie = "name=Micheal; max-age=3600; "

客户端无法设置HttpOnly属性

什么样的数据适合放在cookie中?

存储在cookie中的数据,每次都会被浏览器自动放在http请求中,如果这些数据并不是每个请求都需要发给服务端的数据,浏览器这设置自动处理无疑增加了网络开销;但如果这些数据是每个请求都需要发给服务端的数据(比如身份认证信息),浏览器这设置自动处理就大大免去了重复添加操作。所以对于那设置“每次请求都要携带的信息(最典型的就是身份认证信息)”就特别适合放在cookie中,其他类型的数据就不适合了。

注意:

1.每个域名下的cookie最大为4kb, 每个域名下最多有20条cookie(不同的浏览器厂商可能会有所区别)

相关文章

  • cookie,session,Local Storage,Ses

    cookiecookie认识cookie优点cookie缺点cookie常用方法 sessionsession认识...

  • 认识cookie

    什么是cookie? cookie的英文原意是小饼干是为了应对HTTP是无状态协议这一特性而创造出来的方法,用于在...

  • 认识Cookie,通过Cookie实现7天内自动登录

    认识Cookie,通过Cookie实现7天内自动登录 cookie.setPath(req.getContextP...

  • Cookie的认识

    什么是Cookie 什么是cookiecookie是一些数据(存储用户数据)-cookie存在哪里cookie存储...

  • 9.php cookie session

    cookie管理 认识cookie cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。 设置...

  • cookie的基本认识·

    什么是 Cookie “cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就...

  • (转载)带你认识cookie

    转载出处 一、序 HTTP 协议在网络知识中占据了重要的地位,HTTP 协议最基础的就是请求和响应的报文,而报文又...

  • JavaScript cookie

    一、认识cookie cookie : 存储在本地的一个数据,当用户访问了某个网站(网页)的时候,我们就可以通过c...

  • cookie和session区别

    一、COOKIE 认识Cookie英文是曲奇饼、小甜品的意思,在web应用中,也类似于程序大餐中的小甜品,在 In...

  • Session和Cookie的认识

    第一次写简书好激动呀 很多玩法没摸索 简单记录下 cookie和session 都是会话跟踪技术, cookie:...

网友评论

      本文标题:认识cookie

      本文链接:https://www.haomeiwen.com/subject/eoblsxtx.html