cookie和session的区别?
程序员文章站
2022-07-08 19:49:34
Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是Session。客户端浏览器再次访问时只需要从该Session中查找该客户的状态就可以了。 如果说Coo ......
session是另一种记录客户状态的机制,不同的是cookie保存在客户端浏览器中,而session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是session。客户端浏览器再次访问时只需要从该session中查找该客户的状态就可以了。
如果说cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么session机制就是通过检查服务器上的“客户明细表”来确认客户身份。session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。
session原理大白话:当你一次访问服务器的时候,服务器会在内存中开辟一块空间,返回唯一一把打开该空间的钥匙,再把这把钥匙返回到浏览器。当你第二次访问的时候浏览器会携带这把钥匙到服务器端打开对应的空间,如果该空间已经销毁又重新返回开辟一块新的空间返回新的钥匙到浏览器。
区别
|
cookie
|
session
|
定义
|
网站为了辨别用户身份而存储在用户本地终端上的数据(通常经过加密)
|
服务端保存的用来跟踪用户状态的数据
|
存取方式不同
|
只能保存ascii字符,不能直接存取对象
|
能够存取任何数据类型
|
隐私策略不同
|
存储在客户端,对用户可见,可以被修改、复制
|
存储在服务端,对用户透明,安全性更高
|
有效期不同
|
可以设置长期有效,只要为其设置一个特别大的过期时间
|
有效期较短
|
浏览器支持不同
|
需要客户端浏览器支持。若浏览器禁用或不支持cookie,则需要使用session及url地址重写(把session id直接附在url路径后面),可以设置为一切窗口内有效或当前窗口及子窗口有效
|
只在本次浏览器窗口及子窗口内有效
|
跨域支持不同
|
支持跨域名访问
|
不支持跨域名访问,session仅在它所在的域名内有效
|