目录
一、引言
- 本文为理论基础文章,作为个人总结使用,目的是更好的理解。
- 部分图片来源与网络。
- 红色为重点,蓝色为细节。
- 由于web缓存是基于HTTP的且与现学联系,故不做其它介绍。
二、三者独立介绍篇
-
web缓存
PS:由于本文仅仅在HTTP网络上介绍,故不对高速缓存等进行说明
①web缓存概念
- Web缓存是指一个Web资源(如html页面,图片,js,数据等)存在于Web服务器和客户端(浏览器)之间的副本。
- 比较常见的就是浏览器会缓存访问过网站的网页,当再次访问这个URL地址的时候,如果网页没有更新,就不会再次下载网页,而是直接使用本地缓存的网页。只有当网站明确标识资源已经更新,浏览器才会再次下载网页。
- 举个例子:IE缓存
Internet Explorer浏览器会采用累积式加速的方法,将曾经访问的网页内容存放在电脑里。这个存放空间,就称它为IE缓存。当用户每次访问该同一网站时,IE浏览器首先会向该IE缓存进行查找,如果有相同访内容,则直接从缓存调出,如果没有,则重新从网页下载
②web缓存的作用
- 减少网络带宽消耗:对任何一个网站运营商而言,带宽就是money,不能消耗太大。如果使用该技术,只会产生极小的消耗,减少运营商的成本。
- 降低服务器压力:用户在有效期之内,可以重复使用该缓存,减少对服务器的请求频率,降低了服务器压力。
- 减少网络延迟:加快浏览加载速度,增加用户体验。
2. cookie
①cookie的出现和概念
- HTTP的协议是无状态的,无状态是什么意思呢?可以这样通俗的理解:你在打开一个网页之后,例如百度,你登陆了你的账户,但是当你点击任何一个内容进入了另外一个网页,这个时候,正常情况下,你是处于未登陆的状态。
- 为了解决这一个问题,cookie技术就出现了。它是一个客户端存储数据的方式。
- Cookie 为 Web 应用程序保存用户相关信息提供了一种有用的方法。例如,当用户访问您的站点时,您可以利用 Cookie 保存用户首选项或其他信息,这样,当用户下次再访问您的站点时,应用程序就可以检索以前保存的信息。
②cookie的实现原理
- 用户向某个网站的页面请求访问的时候,应用程序发送给该用户的不仅仅是一个页面,还有一个cookie(主要是一些用户的标识信息:例如用户信息,时间等等)。并且,客户端把它保存到本地硬盘上。
- 当用户第二次向该网站发送请求的时候,客户端会向本地文件进行检索,若发现用户请求的URL在本地可以找到相关联的cookie,客户端就将它与页面请求一起发送到您的站点,您的应用程序就能确定该用户上一次访问站点的信息。
③cookie组件和B/S交互原理
- cookie组件包括四个部分
HTTP响应消息的cookie头部行
HTTP请求消息的cookie头部行
保存在客户端主机上的cookie文件由浏览器管理
Web服务端的后台数据库
- B/S 客户端/服务器交互
解释如下:
- 当客户端client 第一次 向某一网站服务器端server发送HTTP请求时,为一个常规HTTP请求消息
服务器给该客户创建一个特有的ID并讲该用户信息存入后台数据库,并且返回常规HTTP响应,同时加一个set-cookie的cookie:1678,(响应消息的头部行中)
客户端接收消息,将该网站返回的cookie保存到本地,并标识
- 当客户端第二次向同一网站服务器发送请求时,在请求消息的头部行会加入之前保存的cookie:1678,
服务器端接收该请求,通过cookie知道该用户之前在该网站登陆,并且知道其曾经的操作,于是直接返回某一特定服务等。
- 在cookie有效期内,客户端如第二点操作重复
④cookie的作用
- Cookie 能够帮助 Web 站点保存有关访问者的信息。
- 例如,一个实施民意测验的站点可以简单地利用 Cookie 作为布尔值,表示您的浏览器是否已经参与了投票,从而避免您重复投票。
- 某些要求用户登录的站点则可以通过 Cookie 来确定您是否已经登录过,这样您就不必每次都输入凭据。
- 当然,cookie会牵涉个人隐私问题,可以手动关闭。
3. session
①session的由来和概念
- 在了解cookie的作用和由来之后,会发现一个问题:cookie是存在客户端的,数量、大小也是有限的,最关键是用户可以随意读取修改。这会导致极大的安全隐患。于是,session就出现了。
- 与cookie不相同的是,session在服务器端,存储文件也在服务器端的文件中。
- 如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。
②对于session的理解差不多到这里,实际应用的话将会在后面文章写到,有兴趣的读者可以看该篇文章https://blog.youkuaiyun.com/J080624/article/details/78562787,十分推荐。