Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。所以,按存在时间,可分为非持久Cookie和持久Cookie。
Cookie相关的Http头
有 两个Http头部和Cookie有关:Set-Cookie和Cookie。
Set-Cookie由服务器发送,它包含在响应请求的头部中。它用于在客户端创建一个Cookie
Cookie头由客户端发送,包含在HTTP请求的头部中。注意,只有cookie的domain和path与请求的URL匹配才会发送这个cookie。
Set-Cookie Header
Set-Cookie响应头的格式如下所示:
Set-Cookie: <name>=<value>[; <name>=<value>]... [; expires=<date>][; domain=<domain_name>] [; path=<some_path>][; secure][; httponly]
expires=<date>: 设置cookie的有效期,如果cookie超过date所表示的日期时,cookie将失效。
如果没有设置这个选项,那么cookie将在浏览器关闭时失效。
注意:date是格林威治时间(GMT),使用如下格式表示:DAY, DD MMM YYYY HH:MM:SS GMT
DAY The day of the week (Sun, Mon, Tue, Wed, Thu, Fri, Sat). DD The day in the month (such as 01 for the first day of the month). MMM The three-letter abbreviation for the month (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec). YYYY year. HH The hour value in military time (22 would be 10:00 P.M., for example). MM The minute value. SS The second value. domain=<domain_name> : path=<some_path>:
注:临时cookie(没有expires参数的cookie)不能带有domain选项。
当客户端发送一个http请求时,会将有效的cookie一起发送给服务器。
如果一个cookie的domain和path参数和URL匹配,那么这个cookie就是有效的。
一个URL中包含有domain和path,可以参考https://www.jb51.net/w3school/html/html_url.htm
secure : 表示cookie只能被发送到http服务器。
httponly : 表示cookie不能被客户端脚本获取到。
在程序中生成expires
C的方式
time_t curTime = time(NULL); tm * gmTime = gmtime(&curTime); char strExperis[50]; strftime(strTimeBuf, 100, " %a, %d %b %Y %X GMT;", gmTime);
JavaScript的方式
var d = new Date(); var expires = d.toGMTString();
Windows中的InternetSetCookie
在Windows中我们可以使用InternetSetCookie来设置Cookie,假如说,A和B两个进程使用Cookie通信,那么会有如下几种情况:
> A写Global Cookie,B写Session Cookie,此时,A中无法获取Cookie
> A写Session Cookie,B写Session Cookie,此时,A与B中的Cookie互不影响
> A写Session Cookie,B写Global Cookie,此时A中的Cookie被Global Cookie覆盖,它们共享一份Global Cookie
注:这种情况的后果下,如果有任意一个进程再写Session Cookie,那么其他进程将获取不到Cookie
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
HTTP,Cookie
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 【发烧天碟】汤姆·罗素《上帝使者》1999[FLAC+CUE]
- 齐秦.2024-虛度(EP)【力行】【FLAC分轨】
- 高明瀚.1991-我认真,因为我要去看世界【滚石】【WAV+CUE】
- 谢宜君.2021-北海道之恋【豪记】【WAV+CUE】
- 龙飘飘唱片《龙飘飘畅销精选辑》[WAV+ CUE][531M]
- 黄小琥《单曲合集44首》[FLAC][1.2G]
- 黄婉婷《达坂城姑娘 DSD》[WAV+CUE][472M]
- 萤火突击怎么卡无人局 匹配人数设置方法
- 萤火突击怎么邀请好友组队 好友组队方法介绍
- 萤火突击怎么快速升级仓库 仓库升级方法介绍
- 【发烧唱片】《马兰士顶级音响测试唱片》[FLAC+CUE]
- 【轻音乐】曼托凡尼乐团《作品精选辑》2006[FLAC+CUE]
- 俞丽拿沈榕-梁祝(珍藏版)小提琴协奏曲《梁山伯与祝英台》创作50周年纪念[2CD]》[WAV+CUE]
- 开心少女组.1986-开心油戏(2016环球经典礼赞版)【环球】【WAV+CUE】
- 苏慧伦.2007-左撇子旋转门【环球】【WAV+CUE】