世界上最宽阔的是海洋,比海洋还宽阔的是天空,比天空还宽阔的是人的心量。做人的心量有多大。人生的成就就有多大。

不为一己之利去争、去斗、去夺,扫除报复之心和妒忌之念。自然“心底无私天地宽”。

Cookie是当前识别用户,实现持久会话的最好方式。Cookie最初是由网景公司开发,可是如今全部的主要浏览器都支持它。

Cookie的类型:会话Cookie和持久Cookie

会话Cookie是一种暂时Cookie,它记录了用户訪问网站时的设置和偏好。

用户退出浏览器时,会话Cookie就被删除了。

持久Cookie生存的时间相对较长,他们存储在硬盘上,浏览器退出。计算机重新启动它们仍然存在。一般会用持久Cookie维护用户会周期性訪问的网站的配置文件或登录名。

会话Cookie和持久Cookie的唯一差别就是他们的过期时间。

假设设置了Discard參数,或者没有设置Expires或Max-Age參数来说明扩展的过期时间。这个Cookie就是一个会话Cookie。

想做持久Cookie-----一定要设置Expires或Max-Age參数。

Cookie的成分和版本号

如今使用的Cookie规范有两个不同的版本号:Cookies版本号0(有时被称为Netscape Cookies)和Cookies版本号1(RFC2965)。

Cookies版本号1是对Cookies版本号0的扩展,应用不如后者广泛。

Cookie规范版本号0和版本号1都不是昨晚HTTP1.1规范的一部分提供的。

标题 描写叙述 位置
持久client状态:HTTP Cookies 最初的Netscape cookie 标准 http://home.netscape.com/newsref/std/cookie_spec.html
RFC 2965:HTTP 状态管理机制 2000年10月的cookie标准。废弃了RFC2109 http://www.ietf.org/rfc/rfc2965.txt

cookies版本号0(Netscape)

定义了Set-Cookie响应首部、Cookie请求首部以及用于控制Cookie的字段

版本号0的Set-Cookie首部

Set-Cookie首部有一个强制性的Cookie名和Cookie值,后面跟着可选的Cookie属性。中间由分号分隔。

Set-Cookie属性

Set-Cookie属性 描写叙述及实例
NAME= VALUE                             强制的。NAME和VALUE都是字符序列,除非包括在双引號内,否则不包括分号、逗号、等号和空格。Webserver能够创建随意的NAME=VALUE关联,在后继对网站的訪问中会将其送回给Webserver:Set-Cookie: customer=Mary
Expires 可选的。这个属性会指定一个日期字符串。用来定义Cookie的实际生存期。一旦到了过期日期。就不再存储或公布这个Cookie了,日期的格式为:Weekday。 DD-Mon-YY HH:MM:SS GMT
唯一合法的时区为GMT。各日期元素之间的分隔符一定要是长划线。假设没有指定Expires,cookie 就会在用户会话结束时过期:
Set-Cookie:foo = bar;expires=Wednesday,09-Nov-99 23:12:30 GMT
Domain 可选的。浏览器仅仅向指定的server主机名发送Cookie。

这样server就将Cookie限制在了特定的域中。acme.com域与anvil.acme.com 和shipping.crat.acme.com相匹配。可是与www.cnn.com就不匹配。
仅仅有指定域中的主机才干为一个域设置Cookie,这些域中至少有两个或三个句号,以防止出现.com 、.edu和va.us等形式的域。这里列出了一组固定的特定高层域,落在这个范围的域仅仅须要两个句号。全部其它域至少须要三个句号,特定的高层域包含:
.com、.edu、.net、.org、.gov、.mil、.int、.biz、.info、.name、.museum、.coop、.aero和.pro。
假设没有指定域,就默觉得产生Set-Cookie响应的server的主机名:
Set-Cookie:SHIPPING=FEDEX;domain="jose-hardware.com"

Path 可选的。通过这个属性能够为server上特定的文档分配Cookie。假设path属性是一个URL路径前缀。就能够附加一个Cookie。路径/foo与/foobar和/foo/bar.html相匹配。

路径.与域名中全部的内容都匹配。
假设没有指定路径。就将其设置为产生Set-Cookie响应的URL的路径:
Set-Cookie: lastorder=00183; path=/orders

Secure 可选的。假设包括了这样一个属性,就仅仅有在HTTP使用SSL安全连接时才会发送Cookie:
Set-Cookie: private_id=733; secure

版本号0的Cookie首部

client发送请求时,会将全部与域、路径和安全过滤器相匹配的未过期Cookie都发送给这个网站。全部Cookie都被组合到一个Cookie首部中:

Cookie:session-id=002-2222233-2233322; session-id-time=1033949384

Cookies1版本号(RFC 2965)

RFC 2965定义了一个Cookie的扩展版本号。这个版本号1标准引入了Set-Cookie2首部和cookie2首部,它比网景的标准略复杂。还未得到全然的支持。

修改项:

1.为每一个Cookie关联上解释性文本,对其目的进行解释

2.同意在浏览器退出时,不考虑过期时间。将Cookie强制销毁

3.用相对秒数。而不是绝对日期来表示Cookie的Max-Age

4.通过URLport号,而不不过域和路径过滤器(假设有的话)

5.为实现互操作性使用的版本

6.在Cookie首部从名字中区分出附加keyword的$前缀

Cookie版本号1的语法例如以下:

set-cookie = "Set-Cookie2:" cookies
cookies = 1#cookie
cookie = NAME "=" VALUE * (" , set-cookie-av")
NAME = attr
VALUE = value
set-cookie-av = "Comment" "=" value
  | "CommentURL" “=” <”> http_URL <">
  | "Discard"
  | "Domain" "=" value
  | “Max-Age” "=" value
  | "Path" "=" value
  | "Port" [ "=" <"> portlist <"> ]
  | "Secure"
  | "Version" "=" 1* DIGIT
portlist = 1#portnum
portnum = 1*DIGIT
     
cookie = "Cookie:" cookie-version 1*((";" | ",") cookie-value)
cookie-value = NAME "=" VALUE [";" path] [";" domain] [";" port]
cookie-version = "$Version" "="
NAME = attr
VALUE = value
path = "$Path" "=“ value
domain = "$Domain" "=" value
port = "$Port" [ "=" <"> value <"> ]
cookie2 = "Cookie2:" cookie-version

版本号1的Set-Cookie2首部

Set-cookie2属性 描写叙述及实例
NAME=VALUE 强制的。WEBserver能够创建随意的NAME=VALUE关联,能够在后继对网站的訪问中将其发回给WEBserver,"$"是保留字符,所以名字一定不能以它开头
Version 强制的。

这个属性值是一个整数,相应于cookie规范的版本号、RFC 2965 为版本号1:
Set-Cookie2: part="Rocket_launcher_0001"; Version="1"

Comment 可选的。这个属性说明了server准备怎样使用这个cookie。用户能够通过检查次策略来确定是否同意使用带有这个cookie的会话,这个值必须採用UTF-8编码
CommentURL 可选的。这个属性提供了一个URL指针,指向具体描写叙述了cookie目的及策略的文档。用户能够通过查看此策略来判定是否同意使用带有这个cookie的会话
Discard 可选的。假设提供了这个属性,就会在client程序终止时,指示client放弃这个cookie
Domain 可选的。

浏览器仅仅向指定域中的server主机名发送cookie。这样server就能够将cookie限制在特定域中了,acme.com域与主机名anvil.acme.com和shipping.crate.acme.com相匹配,但不匹配于www.cnn.com。域名匹配的规则基本上与网景cookie一样。但有几条附加的规则。

Max-Age 可选的。

这个属性的值是一个整数,用于设置以秒为单位cookie生存期。client应该依据HTTP/1.1的使用期计算规则来计算cookie的使用期。cookie的使用期比Max-Age大时,client就应该将这个cookie丢弃。值为零说明应该马上将那个cookie丢弃。

Path 可选的。通过这个属性能够为server上的特定文档指定cookie。假设path属性是一个URL路径的前缀,就能够附加一个cookie。路径/foo匹配于/foobar和/foo/bar.html。

路径" / "匹配于域中全部内容。假设没有指定路径,就将其设置为生成Set-Cookie响应的路径。

Port 可选的。

这个属性能够单独作为keyword使用,也能够包括一个由逗号分隔的、能够应用cookie的port列表。假设有port列表,就仅仅能向port与列表中的port相匹配的server提供cookie,假设单独提供keywordPort而没有值,就仅仅能向当前响应server的port号提供cookie

Secure 可选的。假设包括这个属性。就仅仅有在HTTP中使用SSL安全连接时才干发送cookie

版本号1的Cookie首部

版本号1的cookie会带回与传送的每一个cookie相关的附加信息,用来描写叙述每一个cookie途径的过滤器。

每一个匹配的cookie都必须包括来自对应Set-Cookie2首部的全部Domain、Port或path属性。

转载于:https://www.cnblogs.com/jzssuanfa/p/7270877.html

深入了解Cookie(1)------selenium2进行Cookie操作的前奏相关推荐

  1. 关于cookie的文章(cookie与session机制)

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  2. 详解 Cookie 纪要(vue.cookie,jquery.cookie简化)

    今天看到一篇cookie的文章,写的特别详细,感谢 晚晴幽草轩 的分享,原文链接http://www.jeffjade.com/2016/10/31/115-summary-of-cookie/ 原文 ...

  3. 什么是Cookie和Session?—— Cookie和Session的区别?—— 一文教你理解清楚什么是Cookie和Session,以及常见的开发面试问题?

    cookie和session区别 cookie和session 背景说明 1.cookie 1.1.定义 1.2.作用 1.3.组成(种类和参数) 1.3.1.会话 Cookies .永久性 Cook ...

  4. Asp之Cookie篇—概述Cookie原理、归纳Cookie方法属性及应用

    什么是Cookies? Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记忆一定的信息.Cookies的工作原理是,第一次由服务器端写入到客户端的系统中.以后每次访问这个网页,都是先由客户 ...

  5. java怎么设置cookie?java设置cookie教程

    java怎么设置cookie?java设置cookie教程介绍.java在开发使用的时候经常会有朋友出现不知道该怎么设置cookie的情况,cookie作为Java开发中十分重要的一个环节,许多朋友都 ...

  6. php session和cookie的区别,细说cookie和session的区别

    做网站开发有一段时间了,而自己却发现对于cookie和session的基础理解存在不足,因此花了2天时间好好学习了一下cookie和session的特性,给大家分享一下 1. 为什么需要cookie和 ...

  7. java怎么设置cookie_java怎么设置cookie?java设置cookie教程

    java怎么设置cookie?java设置cookie教程介绍.java在开发使用的时候经常会有朋友出现不知道该怎么设置cookie的情况,cookie作为Java开发中十分重要的一个环节,许多朋友都 ...

  8. Js设置cookie值和获取cookie值

    一.应用场景: 将值存储在cookie里,页面间调用cookie值. //设置cookie function setCookie(name, value) {document.cookie = nam ...

  9. 什么是session?什么是cookie?session和cookie有什么区别?

    这里是修真院前端小课堂,本篇分析的主题是 [什么是session?什么是cookie?session和cookie有什么区别?] 每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实 ...

  10. cookie httponly ajax,HostOnly Cookie和HttpOnly Cookie

    怎么使用Cookie? 通常我们有两种方式给浏览器设置或获取Cookie,分别是HTTP Response Headers中的Set-Cookie Header和HTTP Request Header ...

最新文章

  1. 网络推广网站解析为什么有些网站有收录却没流量?
  2. qt定时器是阻塞的吗_吊打面试官 | 面试官:TCP真的可靠吗
  3. Android之android.graphics.drawable.Drawable.Callback回调接口
  4. Java中ArrayList和Vector的区别
  5. python爬虫大作业爬多少数据_爬虫大作业
  6. matlab intersect
  7. QCC3020开发问题汇总(更新中。。。)
  8. arduino驱动步进电机 附代码
  9. ubuntu查看隐藏文件及显示隐藏文件所占用存储空间
  10. 沃趣陈栋ORACLE认证,QData-Oracle-数据库一体机---沃趣科技.pdf
  11. wll多功能超小linux,WLL多功能PXE网启服务器3.6终结版
  12. 机器学习决策树的Sklearn的实现(隐形眼镜镜片决策树实现)
  13. qq邮箱发送,mail from address must be same as authorization user
  14. 计算机专业在哪里盖章好,电子印章-什么是电子印章?是不是用软件在电脑上排好然 – 手机爱问...
  15. AWE的这家展台,为什么让吴晓波流连忘返?
  16. python屏幕取词getword_GetWord Demo(屏幕取词软件)
  17. linux从入门到精通十:高级文件系统管理
  18. python标准模块string
  19. jmx_exportter+prometheus+grafana监控hadoop
  20. 2db多少功率_小吴给大家讲讲——分贝dB与放大倍数的转换关系

热门文章

  1. 3第一周课后练习#183;阅读计划(3)-使用函数来访问私有数据成员
  2. mac 下设置 sublime text2 的命令行快捷方式 subl
  3. wiquery ResizePanel
  4. Vlan 划分和 VLan间DHCP 分配
  5. 20一个自定义集合的自述
  6. vue-cli初始化项目2.x|3.x
  7. npm构建vue项目
  8. CF321E Ciel and Gondolas BZOJ 5311 贞鱼
  9. 2017级面向对象程序设计——团队作业2
  10. es6的初级简易总结