热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

浅谈浏览器cookie

由于HTTP协议是无状态的,无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每

由于HTTP协议是无状态的,无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

此时会引用session,比如说登陆成功后,服务端会为用户开辟一块内存区域,用以存放用户这本次会话的一些内容,比如说用户名之类信息。那么就需要一个东西来标识这个内存区域是你的而不是别人的,这就是jsessionid。

然后,服务器响应时会将这个jsessionid发回给你的浏览器,放入你的浏览器的COOKIE中(这个COOKIEs是内存COOKIEs,跟一般的不一样,它会随着浏览器的关闭而消失)。

之后,只有你浏览器没有关闭,你每向服务器发请求,服务器就会从你发送过来的COOKIEs中拿出这个session id,然后根据这个session id从内存中取出你之前存放的数据。

但是,如果你退出登陆了,服务器会清掉属于你的内存区域,所以你再登的话,会产生一个新的session了。


各浏览器对COOKIE也有不同的限制:


IE6.0

IE7.0/8.0

Opera

FF

Safari

Chrome

COOKIE个数:

每个域为20个

每个域为50个

每个域为30个

每个域为50个

没有个数限制

每个域为53个

COOKIE总大小:

4095个字节

4095个字节

4096个字节

4097个字节

4097个字节

4097个字节

当COOKIE超过限额时,浏览器一般会使用"LRU",最近最少使用原则,删除老的COOKIE。这样操作对程序本身是有很大影响的,比如获取不到需要的COOKIE字段,可能会引发一些意想不到的结果,比如用户访问登陆后,访问某个页面,会提示用户没有登陆,需重新登陆 等等。


因此,在使用COOKIE时,需要按严格的标准,和父域名、子域名之间要统一,尽量保证COOKIE的个数不超过20个,COOKIE的总大小不超时4KB。

目前查看COOKIE的工具有很多:

如 HttpWatch,fiddle,firebugs,tamper 以及chrome自带的插件 等

当然极力推荐 的还是FireCOOKIE,是Firefox的一个插件,可以为Firebug添加COOKIE的查看和管理功能

1.如果某个网站的COOKIE较多,可以直接利用Firebug的搜索功能对COOKIE列表进行筛选,这个功能是从左到右完全匹配的,不匹配的结果将被隐藏 起来,只显示那些符合条件的结果。

2. 在COOKIE列表视图状态下,有一些工具栏按钮可以执行一些特殊的操作,比如新建COOKIE,删除当前网站的所有COOKIE,以及设置网页使用COOKIE的权限 等。权限标签按钮显示的是当前网页的权限状态:默认、禁止、允许线程COOKIE、允许所有COOKIE,除了显示状态,点击这个标签还可以直接修改。而且支持实时更新。

3. 如果你想知道COOKIE的值是什么时候发生变化的,可以直接使用Firebug的Console功能,FireCOOKIE会在COOKIE的新建、修改、删除和被禁用的时候,向Console里写日志,如果嫌这个功能多余,可以在选择菜单中禁用。列表中的COOKIE是可以直接修改的,直接右键点击COOKIE,选择edit项就可以。

4. FireCOOKIE支持剪贴板功能,可以对COOKIE进行复制、粘贴和剪切操作。如果把一个COOKIE项复制,并粘贴到记事本中,得到的结果是一个COOKIE赋值语句,左边是COOKIE名称,右边是COOKIE的值列表,包含domain域和path路径等项目。





推荐阅读
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 本文介绍了获取关联数组键的列表的方法,即使用Object.keys()函数。同时还提到了该方法在不同浏览器的支持情况,并附上了一个代码片段供读者参考。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
author-avatar
fuvogsda99363818
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有