cookie是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。

四种会话跟踪技术(URL重写、隐藏表单域、Cookie、Session)

服务端技术:URL重写,Session,Cookie。

客户端技术:Cookie,隐藏表单域。

web2.0应用趋势是动态页面加载,通过Session或URL重写识别用户,保存用户状态。

web3.0应用趋势是前后端分离,通过基于cookie的token识别用户,获取用户状态。

PS:token建议存放在cookies,而不要存放在LocalStorage 和 SessionStorage。

        原因:LocalStorage 和 SessionStorage可以被js读取,而cookies 可以设置httponly 和secure 属性,提高鉴权机制安全性。

cookie的特点

同域,默认带请求凭据(cookie)

跨域,默认不带请求凭据(cookie)

session-cookie,关闭浏览器会删除,会话结束或者会话超时就删除。

cookie,关闭浏览器不会被删除,除非设置了expires/Max-Age,或者是浏览器清除cookies。

PS:防止cookie被篡改。

        建议给cookie生成一个签名。

PS: 如果允许请求带cookies,会把所有的请求(图片,音视频,css,js)等资源都会发送cookies,从而降低了页面性能。

       为此要使用CDN静态部署资源,避免静态资源请求发送cookie,提高请求的效率,节省请求带宽。

PS:跨域请求带cookies 

        实现:前端页面添加一个隐藏跨域iframe。

        后端设置 Access-Control-Allow-Credentials: true。

                      Access-Control-Allow-Origin: *    (这里注意使用通配符可能会报错)

                      应该为: Access-Control-Allow-Origin: "http://xxxx.com" 

补充:关于客户端(浏览器)cookies限制问题。

          IE无法使用cookie,原因是系统限制cookie。(出现这类情况可能使用系统优化软件导致)

          

最新文章

  1. uploadify参数
  2. 更新证书错误:No matching provisioning profiles found
  3. I.MX6 initramfs.cpio.gz.uboot unpack
  4. Java 集合系列17之 TreeSet详细介绍(源码解析)和使用示例
  5. 区分int a() 和 int a
  6. 举例详细说明javascript作用域、闭包原理以及性能问题(转)
  7. php编程中容易忽略的地方
  8. P55、面试题6:重建二叉树
  9. BZOJ 1715: [Usaco2006 Dec]Wormholes 虫洞
  10. jenkins邮件设置
  11. 将ADS1.2的工程迁移到KEIL上-基于2440
  12. 前端jquery validate表单验证框架的使用
  13. 💈 线程间互访助手类 (EN)
  14. Eclipse在写java时的BUG
  15. dos 打开计算机管理
  16. 使用npm install时一直报错-4048 operation not permitted
  17. JS两个页面通过URL传值
  18. 编辑文件 vi,vim的基本操作
  19. SSM集成activiti6.0错误集锦(二)
  20. P4091 [HEOI2016/TJOI2016]求和

热门文章

  1. C++ 宏定义的简单使用
  2. linux下获取外网IP
  3. ubuntu openstack windows 镜像制作
  4. centos下的安装mysql,jdk
  5. bzoj3887: [Usaco2015 Jan]Grass Cownoisseur
  6. 【转载】LCT题单
  7. 【洛谷1993】小K的农场(差分约束系统模板题)
  8. 一键备份脚本 backup.sh
  9. CSS清除浮动方法总结
  10. Too Rich HDU - 5527 (贪心+dfs)