关于http协议中session和cookie的区别
来源:互联网 发布:cae软件是什么 编辑:程序博客网 时间:2024/06/03 12:29
我知乎上看到一个很简介的总结,觉得写得非常好,小结一下:
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的联系与区别
- HTTP协议里的cookie和session
- http中cookie 和session区别
- HTTP中Cookie与Session的区别
- 关于在php中cookie和session的区别
- HTTP协议中session与cookie的联系与区别——UCWEB笔试题
- HTTP协议中session与cookie的联系与区别——UCWEB笔试题
- PHP中cookie和session的区别
- php中cookie和session的区别
- php中session和cookie的区别
- jsp中Session和Cookie 的区别
- http协议学习系列(Cookie和Session)
- http协议 cookie和session机制详解
- http协议学习-Cookie和Session
- HTTP 协议 Session Cookie
- 为什么说HTTP协议是无状态的,以及session和cookie的区别。转载自leelyn168
- http的cookie和session
- zookeeper和hbase超时问题
- 如何编写单元测试代码
- imgproc组件
- 解决APP界面卡死Bug
- JSP页面使用JSON和ajax实现省市联动
- 关于http协议中session和cookie的区别
- MySQL的字符串截取函数
- spring定时器一些时间配置例子参考
- Matlab studying(4)M文件
- dispatch_barrier_async
- tmux里的session,window,pane
- jQuery.extend 函数使用详解
- 4.21 详解Linux中搭建一个ftp服务器
- C语言rename()函数:重命名文件或目录