标签:fine 括号 失效 href 关于 接收 选择 领域 消息
MDN是这样说的:HTTP Cookie(也叫Web cookie或者浏览器Cookie)是服务器发送到用户浏览器并保存在浏览器上的一块数据,它会在浏览器下一次发起请求时被携带并发送到服务器上。
Set-Cookie: value[; expires=date][; domain=domain][; path=path][; secure]
注意:value部分通常是name=value 格式的字符串,这一项必须填。
Cookie: value
注意:这里只有value会发给服务器,在Set-cookie里的可选设置选项只会在浏览器端使用,不会发回给服务器。如果有多个value,可以用逗号隔开,例如:
Cookie: value1; value2; name1=value1
expires指定Cookie的有效期,它的选项的值是一个 GMT 日期格式的值,例如:
Set-Cookie: name=chiang; expires=Tue, 20 Jun 2017 07:17:37 GMT
如果我们没有设置expires属性,cookie 的生命周期仅限于当前会话中,关闭浏览器意味着这次会话的结束,所以会话 cookie 仅存在于浏览器打开状态之下。如果expires属性的值是一个过去的时间,那么cookie将会被浏览器立即删除。
指定了 cookie 将要被发送至哪个或哪些域中。默认情况下,domain 会被设置为创建该 cookie 的页面所在的域名,
domin属性将指定作为Cookie适用对象的域名,即cookie将会被发送至哪个或者哪些域名中。默认为为创建Cookie的页面所在域名。
domain属性可以扩充 cookie 可发送域的数量,例如
Set-Cookie: name=fang; domain=fang.com
这里我们把domain设置为chiang.com,那么如果我们从a.fang.com、b.fang.com发送请求,就可以将该 cookie 的值发送至所有这些站点。因为浏览器会把 domain 的值与请求的域名做一个尾部比较(即从字符串的尾部开始比较),并将匹配的 cookie 发送至服务器。
注意:domain值必须是发送 Set-Cookie 消息头的主机名的一部分,因为这会产生安全问题。不合法的 domain 选择将直接被忽略。
path属性指定了请求的资源 URL 中必须存在指定的路径时才会发送Cookie 消息头。默认为当前发送Set-cookie请求所对应URL的path部分。
Set-Cookie:name=chiang;path=/blog
在这个例子中,path 选项值会与 /blog,/blogxxx 等等相匹配;任何以 /blog 开头的选项都是合法的。
注意:只有在 domain 匹配完毕之后才会对 path 属性进行比较。
source属性只是一个标记而没有值。只有当一个请求通过 SSL 或 HTTPS 创建时,包含 secure 选项的 cookie 才能被发送至服务器。
Set-Cookie:name=fang;path=/blog
默认情况下,在 HTTPS 链接上传输的 cookie 都会被自动添加上 secure 选项。
cookie 会被浏览器自动删除的情况:
- 会话 cookie (Session cookie) 在会话结束时(浏览器关闭)会被删除
HTTP-Only 的意思是告诉浏览器这个 cookie 绝不能通过 JavaScript 的 document.cookie
属性访问。这个属性是为了帮助阻止通过 JavaScript 发起的跨站脚本攻击 (XSS) 窃取 cookie 的行为。
要创建一个 HTTP-Only cookie,只要在 cookie 中添加一个 HTTP-Only 标记即可:
Set-Cookie: name=fang; HttpOnly
维基百科关于session的解释:
在计算机科学领域来说,尤其是在网络领域,会话(session)是一种持久网络协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包的作用机制,session在网络协议(例如telnet或FTP)中是非常重要的部分。
由于HTTP是无状态协议,也就以为着它无法实现状态管理,例如登陆认证成功的用户状态无法在协议层面保存下来。当该用户下一次继续访问就无法区分他与其他的用户。于是我们使用Cookie 来管理Session,以弥补HTTP 协议中不存在的状态管理功能。
步骤:
以上是一个登录认证的session示例,通过这个例子我们可以了解session的基本原理,其实session可以理解为是服务器对cookie的一个映射。
标签:fine 括号 失效 href 关于 接收 选择 领域 消息
原文地址:https://www.cnblogs.com/raulfang/p/9021467.html