网络传输的知识
一、Cache
1、浏览器缓存
浏览器(IE,Chrome,Firefox)都有缓存设置选项,它可以将你浏览过的网页全部保存到你本地计算机的硬盘中。
2、代理缓存
代理缓存既不属于客户端,也不属于服务器端,而是利用网络路由请求信息:
(1)用户手动设置的代理。
(2)使用网页代理,网页代理将你的URL请求通过它潜在的网络定向到代理,用户无需手动配置。
3、网关缓存
(1)强缓存
缓存策略:直接从本地缓存中取资源,不会和服务器通信。
(2)协商缓存
缓存策略:通过服务器来告知是否能用本地缓存。先和服务器通信,如果返回可以使用本地缓存的指示,再从本都缓存中取;如果不可以使用本地缓存,就会返回最新的资源。
二、Cookie
1、cookie的使用原理:
(1)用户会提供包括用户名在内的一些用户信息并且将其提交至服务器。
(2)服务端想客户端回传响应的数据的同时,也会发回用户的信息(Cookie S-001)。
(3)当客户端接收到来自服务器的响应之后,浏览器会将Cookie S-001存放在一个统一的位置。
(4)客户端再向服务器发送请求的时候,会把Cookie S-001再次发回至服务器。
2、获取Cookie的途径
(1)使用浏览器开发者工具或者抓包工具获取。
(2)从本地文件中获取
IE浏览器Cookie数据位于:%APPDATA%\Microsoft\Windows\Cookies\目录中的xxx.txt文件。
Firefox的Cookie数据位于:%APPDATA%\Mozilla\Firefox\Profiles\目录中的xxx.default目录名为cookies.sqlite的文件。
Chrome的Cookie数据位于:%APPDATA%\Google\Chrome\User Data\Default\目录中名为cookies的文件。
(3)通过前端技术获取
在浏览器地址栏输入 Javascript:alert (document. cookie),显示本网站的所有的Cookie内容。
三、Session
1、Session的传输步骤:
(1)服务器端程序运行的过程中创建Session并且为该Session生成唯一的Session ID。
这个Session ID在随后的请求中会被用来重新获得已经创建的Session 。在Session 被创建之后,就可以调用Session 相关的方法向Session 中增加内容,这些内容只会保存在服务器中。
(2)服务器将Session ID发到客户端。
(3)当客户端再次发送请求的时候,会将这个Session ID带上。
(4)服务器接收到请求之后就会依据Session ID找到相应的Session,完成请求相应。
2、Session 的传输媒介
(1)通过Cookie传输。
(2)URL地址重写。
四、Session与Cookie的区别
1、存储位置不同
Cookie的数据信息存放在客户端浏览器上。
Session 的数据信息存放在服务器上
2、存储容量不同
单个Cookie保存的数据<=4KB,一个站点最多保存20个Cookie。
对于Session 并没有上限,但出于对服务器性能考虑,Session 内不要存放过多的东西,并且设置Session 删除机制。
3、存取方式不同
Cookie中只能保管ASCII字符串,需要通过编码的方式获取Unicode字符或者二进制数据。运用Cookie难以实现存储略微负责的信息。
Session 中能够存取任何类型的数据,包括且不限于String、Integer、List、Map。
4、隐私策略的不同
Cookie对客户端是可见的,别有用心的人可以分析放在本地的Cookie并进行Cookie欺骗,所以他是不安全的。
Session 存储在服务器上,对客户端透明,不存在敏感信息泄露的风险。
5、有效期不同
开发可以通过设置Cookie的属性,达到使Cookie 长期有效的结果。
由于Session 依赖于名为JESSIONID的Cookie,而Cookie JESSIONID的过期时间默认为-1,只要关闭窗口该Session 就会失效。
6、服务器压力不同
Cookie保存在客户端,不占用服务器资源。
Session保存在服务器端,每个用户会产生一个Session 。若并发访问的话会产生很多Session ,耗费大量内存。
7、跨域支持上的不同
Cookie支持跨域名访问。
Session不支持跨域名访问。
网友评论