关于http协议中session和cookie的区别
2017-04-21 10:13
344 查看
我知乎上看到一个很简介的总结,觉得写得非常好,小结一下:
image.png
image.png
关于cookie 来自其他网页的一些整理
image.png
image.png
自己抓包看了一下
当我们第一次登录一个网站的时候,服务器会通过http协议里面setcookie的方式,给浏览器发放一个cookie(其实就是一个文件)
image.png
这就是浏览器保存的cookie
![Uploading image_435150.png . . .]
浏览器拿到cookie之后,之后的http请求就会带上cookie。给浏览器标识出自己的身份。
cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session
id将被在本次响应中返回给客户端保存。
保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。一般这个cookie的名字都是类似于SEEESIONID。但cookie可以被人为的禁止,则必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。
cookie 被禁止时的解决方案:
经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面。还有一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。比如:
实际上这种技术可以简单的用对action应用URL重写来代替。
cookie 和session 的区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
image.png
image.png
关于cookie 来自其他网页的一些整理
image.png
image.png
自己抓包看了一下
当我们第一次登录一个网站的时候,服务器会通过http协议里面setcookie的方式,给浏览器发放一个cookie(其实就是一个文件)
image.png
这就是浏览器保存的cookie
![Uploading image_435150.png . . .]
浏览器拿到cookie之后,之后的http请求就会带上cookie。给浏览器标识出自己的身份。
2. 关于session
cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session
id将被在本次响应中返回给客户端保存。
保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。一般这个cookie的名字都是类似于SEEESIONID。但cookie可以被人为的禁止,则必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。
cookie 被禁止时的解决方案:
经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面。还有一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。比如:
<form name="testform" action="/xxx"> <input type="hidden" name="jsessionid" value="ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764"> <input type="text"> </form>
实际上这种技术可以简单的用对action应用URL重写来代替。
cookie 和session 的区别:
1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
相关文章推荐
- HTTP协议中session与cookie的联系与区别
- HTTP协议中session与cookie的联系与区别——UCWEB笔试题
- 为什么说HTTP协议是无状态的,以及session和cookie的区别。转载自leelyn168
- HTTP协议中session与cookie的联系与区别——UCWEB笔试题
- HTTP协议中session与cookie的联系与区别
- HTTP协议--cookie、session、缓存与代理
- 关于session与cookie区别
- HTTP协议详解 Author :Jeffrey () session and cookie
- Java Socket实现HTTP客户端来理解Session和Cookie的区别和联系
- Java Socket实现HTTP客户端来理解Session和Cookie的区别和联系
- 面试题关于cookie,session,application的区别
- cookie 和session 的区别详解 (出处:http://shiyangxt.cnblogs.com )
- HTTP协议之Session和Cookie
- 如何解决Ajax访问不断变化的session的值不一致以及HTTP协议中的GET、POST的区别
- HTTP协议的特点,关于HTTP请求GET和POST的区别
- servlet redirect/forward/session/cookie 与 HTTP 协议的测试
- cookie和session的区别的理解(http://www.jz123.cn/text/196.html)以及页面间数据的传递
- 关于session与cookie区别
- 再谈 关于session与cookie区别
- 关于session与cookie区别 在网上闲逛看着不错 大家互相学习下