cookie学习

基本通讯过程:

设置cookie -----cookie被自动添加在require header中--服务端收到cookie浏览器

cookie是什么

cookie是存储在浏览器中的纯文本,浏览器的安装目录下会专门有一个cookie文件夹存放各个域下设置的cookie安全

发送请求时,浏览器会自动检查是否有相应的cookie,若是有则自动添加在require header中cookie

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

存储在cookie中的数据在每次发送请求的时候都会自动放在http请求中,若是这些数据不是每一个请求都须要发给服务端的,那么这些cookie会增长网络开销;若是是,就会大大免去重复添加操做;因此 对于每次请求都要携带的信息就适合放在cookie中网络

有限制: 4Kb 数量最多20个session

cookie的格式

  • expries/max-age:

expries: http/1.0协议中的选项,必须是GMT格式(经过new Date().toGMTString()或new Date().toUTCString()),默认有效期是session,即会话cookie,浏览器关闭后销毁dom

Max-age: http/1.1协议中,以秒为时间单位,值为: 负数 0 整数, 负数表明有效期为session,0表明删除,正数表明有效期为建立时间+max-agexss

  • domain和path:

domain+path=url,限制cookie被哪些URL访问ui

  • secure

设置cookie只在确保安全的请求中才发送,如https协议或其余安全协议中,默认是cookie不会带secure选项编码

在客户端这只secure时,需是https协议url

  • httponly:

设置是否能经过js访问,默认状况下,此项为空,js能够进行访问(读 删 修)

若是为true,这类cookie客户端没法设置,只能经过服务端设置

目的: 保障安全,避免遭受xss攻击

如何设置cookie

服务端: set-cookie

客户端: docunment.cookie 注意客户端设置secure有条件(只有在https协议的网页中才能成功) 且不能设置httponly

修改: 从新赋值

删除: 设置过去时间点

编码: cookie为字符串,其中的空格 分号 逗号会被当作特殊字符,须要进行编码.通常采用encodeURIComponent/decodeURIComponent或者encodeURI/decodeURI

相关文章
相关标签/搜索