cookie

cookie是什么

Cookie是服务器发送到用户浏览器井保存在本地的一小块数据,会在浏览器下次向同–服务器再发起请求时被携带并发送到服务器上。
通常,Cookie用于告知服务端两个请求是否来自同- -浏览器,如保持用户的登录状态。Cookie使基于无状态的HTTP协议记录稳定的状态信息成为了可能。Cookie技术产生源于HT TP协议在互联网上的急速发展。
Cookie曾一度用于客 户端数据的存储,因当时井没有其它合适的存储办法而作为唯一的存储手段。 但现在随着现代浏览器开始支持各种各样的存储方式,Cookie渐渐被淘汰。由于服务器指定Cookie后,浏览器的每次请求都会携带Cookie数据,会带来额外的性能开销。

08L3XLLYAZ~7H`ZWG.png

cookie的存储

保存在某个特定的目录下的一个扩展名为.txt的文本文件中,且不同站点的cookie数据保存在不同的文件中。

cookie数据一般是加密保存的

cookie的作用域

Domain和Path标识定义了Cookie的作用域,即Cookie应该发送给哪些URL

  • Domain 标识指定了哪些主机可以接受Cookie。

    ​ 如果不指定,默认为当前文档的主机(不包含子域名)。

    ​ 如果指定了Domain,则-般包含 子域名。例如,如果设置Domain=wolongxueyuan.com,则Cookie也包含在子域名中(如developer.wolongxu leyuan.com)。

  • Path标识指定了主机下的哪些路径可以接受Cookie (该JRL路径必须存在于请求URL中)。以字符%x2F(“/" )作为路径分隔符,子路径也会被匹配。

cookie的有效期

Max- Age和Expires标识定义了Cookie的有效期,即Cookie的生 命周期。

  • 会话期Cookie
    会话期Cookie是最简单的Cookie。浏览器关闭之后Cookie会被自动删除,也就是说Cookie仅在
    会话期内有效。会话期Cookie不需要指定过期时间( Expires)或者有效期(Max- Age)。
  • 持久性Cookie
    持久性Cookie可以指定一个特定的过期时间( Expires )或有效期(Max- Age)。
cookie的应用

Cookie主要用于以下三个方面:
● 会话状态管理(如用户登录状态、购物车、游戏分数或其它需要记录的信息)
● 个性化设置(如用户自定义设置、主题等)
● 浏览器行为跟踪(如跟踪分析用户行为等)

访问与更新cookie

创建cookie

JavaScript可以使用document.cookie属性来访问和更新Cookie。语法结构如下所示:

document.cookie = newCookie;

newCookie是-一个键值对形式的字符串。需要注意的是,用这个方法一次只能对一个cookie进行设置或更新。

document.cookie = "name=wolongxueyuan";
document,cookie = "someCookieName-true;expires=Fhi, 31 Dec 9999 23:59:59 GMT; path=/";
读取cookie

JavaScript可以使用document.cookie属性来访问和更新Cookie。语法结构如下所示:

allCookies = document.cookie;

allCookies被赋值为一个字符串,该字符串包含所有的Cookie,每条cookie以分号分隔(即key=value键值对)。

var cookies = document.cookie;
console.log( cookies );//多个Cookie用";"分割
var arr = cookies.split(;);
for(var i=0; ikarr.length; i++){
var cookie = arr[i];//键值对用=分割
var cookiePair = cookie,split('='); 
console.log(cookiePair[0] + '=' + cookiePair[1])
删除cookie

JavaScript删除Cookie只需要设置Expires标识为以前的时间即可。如下所示: .

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";

需要注意的是,当删除时不必指定Cookie的值。

HTTP中的cookie

set-cookie响应头

服务器使用Set-Cookie响应头部向用户代理( -般是浏览器)发送Cookie信息。一个简单的Cookie可能像这样:

Set-Cookie: <cookie名>=<cookie值>

服务器通过该头部告知客户端保存Cookie信息。

HTTP/1.0 200 OK
Content-type: text/html
Set-Cbokie: yummy_ cookie=choco
Set-Cookie: tasty_ cookie=strawberry
[页面内容]

ontent-type: text/html
Set-Cbokie: yummy_ cookie=choco
Set-Cookie: tasty_ cookie=strawberry
[页面内容]



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值