1.Cookie
-
HTTP1.0
中协议是无状态的,但在WEB
应用中,在多个请求之间共享会话是非常必要的,所以出现了Cookie
、cookie
是为了辩别用户身份,进行会话跟踪而存储在客户端上的数据;
- 属性
2.Session
-
session
是另一种记录客户状态的机制,不同的是Cookie
保存在客户端浏览器中,而session
保存在服务器上,客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是session
。客户端浏览器再次访问时只需要从该Session
中查找该客户的状态就可以了; -
实现过程
- 在服务器端生成全局唯一标识符
session_id
; - 在服务器内存里开辟此
session_id
对应的数据存储空间; - 将
session_id
作为全局唯一标示符通过cookie
发送给客户端; - 以后客户端再次访问服务器时会把
session_id
通过请求头中的cookie
发送给服务器; - 服务器再通过
session_id
把此标识符在服务器端的数据取出 - 如果客户端的浏览器禁用了
Cookie
怎么办?一般这种情况下,会使用一种叫做URL
重写的技术来进行会话跟踪,即每次HTTP
交互,URL
后面都会被附加上
- 在服务器端生成全局唯一标识符
- 属性
3.Cookie和Session的区别
-
cookie
数据存放在客户的浏览器上,session
数据放在服务器上(一般以内存、数据库、文件形式)。 -
session
会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用Cookie
; - 单个
cookie
保存的数据不能超过4K,Session
没有大小限制; - 总结:
Session
是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在内存,集群、数据库、文件中;Cookie
是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session
的一种方式。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。