位置: 编程技术 - 正文

详解HTTP Cookie状态管理机制

编辑:rootadmin

推荐整理分享详解HTTP Cookie状态管理机制,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

HTTP cookies,通常又称作"cookies",已经存在了很长时间,但是仍旧没有被予以充分的理解。首要的问题是存在了诸多误区,认为cookies是后门程序或病毒,或压根不知道它是如何工作的。第二个问题是对于cookies缺少一个一致性的接口。尽管存在着这些问题,cookies仍旧在web开发中起着如此重要的作用,以至于如果cookie在没有可替代品出现的情况下消失,我们许多喜欢的Web应用将变得毫无用处。

一、cookie 起源

cookie 最早是网景公司的雇员 Lou Montulli 在年3月发明,后被 W3C 采纳,目前 cookie 已经成为标准,所有的主流浏览器如 IE、Chrome、Firefox、Opera 等都支持。

cookie 的诞生是由于 HTTP 协议的天生缺陷,HTTP 是一种无状态的协议,简单的 Request 和 Response 一旦请求/响应结束,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话,即服务器并不清楚是哪个客户端。

一些典型应用如 登陆/购物车 就无法实现了。比如,用户 A 在购物商城购买的商品都应该放在 A 的购物车内,不论是用户 A 什么时间购买的,这都是属于同一个会话的,不能放入用户 B 或用户 C 的购物车内,这不属于同一个会话。

基本的原理如图

二、cookie 操作

对 cookie 的操作包括如下

1.名称(Name)2.值(Value)3.域(Domain)4.路径(Path)5.失效日期(Expires)6.安全标志(Secure)7.HttpOnly (仅服务器端)

注意,cookie 多数时候由服务器端创建,JS 也可以创建 cookie,但 HttpOnly 类型的 JS 无法创建。

浏览器提供的 cookie API (document.cookie)实在过于简陋,可以稍封装下,如以下采用setter/getter方式 cookie 函数就方便了许多

当然,还有更方便的 类型

1.普通 cookie,服务器端和 JS 都可以创建,JS 可以访问2.HttpOnly cookie,只能由服务端创建,JS 是无法读取的,主要基于安全考虑3.安全的 cookie (仅https),服务器端和 JS 都可以创建,JS 仅HTTPS下访问

详解HTTP Cookie状态管理机制

比如,在新浪云上测试页面: 3 个 cookie,分别是 c1, c2, c3

用 Firefox 访问

我种的三个都有,saeut是新浪云种的。

在 firebug 控制台输入 document.cookie

可以看到,c2,c3 都是访问不到的。c2 是 安全的cookie,需要在https协议下访问,c3 则是 httpOnly 的,JS无法访问,这个需要注意。

把访问协议改成 https: 切换到控制台再输入 document.cookie,可以看到 c2 就可以访问了

四、cookie 的坑

1. Cookie 太大或数量过多时页面访问报错,比如会出现如下提示

因此站点的 cookie 需要管理,不能随意种 cookie。另外尽量指定path,将cookie限定在指定范围内。

网站 browsercookielimits.squawky.net ,记录了各浏览器 cookie 大小

2. 保存中文时需要Unicode编码(encodeURIComponent),否则存的是乱码

PHP实现QQ登录实例代码 分享一段利用PHP实现QQ登陆的代码,原理是用curl模拟发送post登录,cookie保存本地,实现真正的3GQQ登陆。这里代码理论可以支持永久单挂QQ—真正做到免

PHP数组去重比较快的实现方式 概述使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组。这个函数大多数情况下都能工作得很好。但是,如

CI(CodeIgniter)简单统计访问人数实现方法 原创 本文实例讲述了CI(CodeIgniter)简单统计访问人数实现方法。分享给大家供大家参考,具体如下:废话不说,先上代码:控制器文件:/application/controllers/hell

标签: 详解HTTP Cookie状态管理机制

本文链接地址:https://www.jiuchutong.com/biancheng/288180.html 转载请保留说明!

上一篇:在php中设置session用memcache来存储的方法总结(phpseessid)

下一篇:PHP实现QQ登录实例代码(php如何实现登录和注册)

  • 小规模纳税人增值税减免账务处理
  • 什么是进口增值业务
  • 税会差异产生的原因
  • 收据盖发票专用章后果
  • 事业单位财政拨款取得方式
  • 出纳单据交接表怎么填写
  • 没有工会 还需要交钱吗
  • 城市维护建设税怎么做分录
  • 资产证券化会计准则
  • 公司对外投资是股东会还是董事会
  • 半成品转成品会计分录
  • 跨月销项负数发票怎么做账
  • 企业征地补偿支出需要什么凭据做账?
  • 报关单上金额要和合同上一样吗
  • 增值税申报未达标怎么办
  • 广告发布税收编码
  • 某企业2016年年末经营资产总额为4000万元
  • 附加税零申报怎么申报
  • 可转换公司债券可以在一定程度上解决的问题是
  • 建筑施工企业在12个月内连续发生
  • 应付职工薪酬调到其他应付款
  • 业务招待费例子
  • mac锁屏屏保
  • 支付宝账单有什么作用
  • 同一控制下的企业合并,合并方在企业合并中取得的资产
  • php精彩编程200例
  • wordpress是开源吗
  • php中namespace use用法实例分析
  • 后续追加投资如何处理
  • vue组件继承element并重写方法
  • 查看redis节点
  • php经典面试题及答案
  • 以前年度亏损现在不亏了
  • 现金流量的折现值
  • 其他资本公积可以冲减吗
  • 免税普票要交企业所得税吗
  • 终止劳动合同赔偿金最晚多久发放
  • 投资性房地产如何折旧
  • 工资包含福利费吗
  • 税务安全证书应用客户端不成功是什么意思
  • 一般纳税人领票提交什么资料
  • 公司固定资产抵押贷款无法偿还
  • 公司自主研发新能源汽车
  • 备用金有发票抵扣吗
  • 城市维护建设税怎么算
  • 在建工程领用原材料税费怎么处理
  • 房地产采取按揭销售的,其销售的入账时间为
  • 商品亏本出售分录
  • 幼儿园收取的生活费免税吗
  • 贴现帐务处理
  • 企业资产负债表怎么做
  • 委托收款背书和质押背书都属于转让背书
  • 子公司注销前资金怎么办
  • 城镇土地税需要计税吗
  • 本年负数去年正数如何算同比
  • 公司差旅费报销标准表
  • 软件测试收费标准2019
  • 小额零星支出是什么意思
  • 折旧年限的最新规定2021
  • 五险一金个人和公司缴费比例
  • 简易征收可以开具3专票吗
  • 建账的要点及应注意的问题
  • 房地产企业成本控制存在的问题及对策
  • mysql主从复制作用
  • win7怎么调整
  • win7怎么看
  • 右下角小喇叭调不了声音
  • linux vi中查找内容
  • windows8窗口
  • win builds
  • jquerygrid
  • cocos2dx-3.x(二)、坐标系
  • cmd网络管理命令的功能和用法
  • css总结笔记
  • shell脚本cut -d
  • Python Sqlite3以字典形式返回查询结果的实现方法
  • 现在开票可以不去税务局吗
  • 海关编码更新
  • 小汽车都交消费税吗
  • 贵州省税务网上缴费平台
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设