HTTP协议基础-8-HTTP cookies

这篇来学习cookies,有了cookies基础就更好了解session。HTTP cookie(Web cookie,浏览器cookie)是服务器发送到用户Web浏览器的一小段数据。 浏览器可以存储它并将其与下一个请求一起发送回同一服务器。 通常情况下,它用于判断两个请求是否来自同一个浏览器 - 例如,保持用户登录。 它记住无状态HTTP协议的有状态信息。

 

1.HTTP cookies的3种用途

会话管理

这个是设计cookies的核心原因,前面我们介绍了HTTP协议是无状态的。但是我们如果都无状态,那么登录不了,添加不了购物车。会话管理用途使用场景有:保持登录状态,购物车,游戏分数,或者其他任何服务器想要记住的信息。

个性化
例如有些应用程序,用户登录之后可以设置皮肤,主题和其他首选项。

跟踪
纪录和分析用户行为,当今AI,大数据时代,这是很常见的。

cookies原来一般都是作为一个临时文件存储在客户端本地,为了安全性考虑,现在存本地的越来越少,很多都是通过API存这些数据,每次发送请求都cookies添加到API种。所以,cookies只能存少量数据,这种请求带上cookies内容可能造成性能上问题。

 

2.Cookies是如何创建的

当收到HTTP请求时,服务器可以发送带响应的Set-Cookie标头。 Cookie通常由浏览器存储,然后通过向Cookie HTTP标头内的同一服务器发出请求来发送cookie。 可以指定到期日期或持续时间,之后不再发送cookie。 此外,可以设置对特定域和路径的限制,从而限制cookie的发送位置。

这段话可能有点不好理解,我们拆开来

1)cookies是服务器创建的,在响应种通过头字段 Set-Cookie来发送给客户端

2)一般是浏览器收到这个cookie,以临时文件或者其他手段存储到本地

3)客户端下次请求时,带上cookies

4)cookies可以设置有效期,例如半小时,一天,一个月,一年 或者其他任意时间。

5)特定域和路径,不同网站肯定域不同,路径主要是产品名称,不同网站的不同产品,浏览器产生的cooike分别用不同文件保存。

例如这么一个例子,在IE 11浏览器上,cookies文件默认存储在以下位置

点击IE-设置-Internet选项->常规-设置-当前位置,或者点击查看文件

C:\Users\用户名\AppData\Local\Microsoft\Windows\INetCache

cookie:计算机用户名@baidu.com/
cookie:计算机用户名@localhost/
cookie:计算机用户名@microsoft.com/

如果你本地不管哪个浏览器登录过localhost/phpwind 和百度账号 和微软账号,例如msn等,上面就是我本地的cookie文件,通过这几个文件的名称组成,就很好理解上面滴5)点的含义。

在win10上,你把对应的cookies文件拷贝到桌面上,然后想用记事本打开,里面是没有内容,早期cookies技术是有的。里面有用户名和密码,当然大部分密码都是加密过,但是还是不安全,这个地方也是web系统的一个安全测试点。

现在如果你打开cookies文件,会一句话提示你

Cookies are no longer stored in files.  Please use Internet*Cookie* APIs to access cookies.

这什么意思呢,告诉我们现在cookies不再保存在本地文件中,你需要通过http 相关的api才能查看cookies信息。

 

3.如何查看cookies信息

我介绍两种方法,第一种是fiddler工具或者浏览器F12,第二种在chrome浏览器直接点击查看cookies

fiddler查看,在响应头中看 set-cookies字段

第二种chrome浏览器地址栏左侧

 

4.解释下保持登录这个过程

这里解释下客户端和服务器在判断cookies有效期呢,用户保持登录的过程

1.再次打开浏览器,浏览把cookies发送给服务器
2.服务器解析cookie,可以拿到用户名和密码信息,或者是否已经登录状态
3.服务器看到已经处于登录状态,就不会让浏览器再登录
4.然后浏览器需要从cookie中读取账号信息
5.浏览器通过读取账号信息用来执行登录

 

总结一下:cookies是保存在客户端的一种会话管理的技术,数据保留在客户端就存在安全漏洞,而且cookies不能保存大量数据,一般都是小块数据。在应用程序登录的时候,如果勾选保持登录,那么服务器就创建cookies,浏览器会保存这个临时文件到本地,如果用户在web中,点击退出,那么浏览器会把本地之前保存相关的cookies文件清除。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值