Cookie和Session借鉴

cookie和session的区别

cookie和session有众多的联系,面试,日常开发中也经常用到,写下来记录一下。

cookie的前身

Http协议本身是没有状态的,客户端向服务器请求下载资源,每一次请求都是独立的,客户端和服务器都没有必要去记录彼此的行为。
后来人们发现若是能生成一些按照人们需求的动态信息,则web会更有用,于是HTML添加了表单,下拉框,脚本等等,另外在服务器端也出现了CGI规范,用来响应客户端动态信息。

cookie的作用

其实cookie是解决Http协议没有状态而做的改变,session则是为了解决客户端与服务器之间保持状态的办法。
cookies是作为Http创术的信息头的一般法发给客服端的,服务器通过在Http响应头上添加一段特殊的指示,用来提示浏览器按照指示生成相应的cookie.
cookie的使用是由浏览器按照一定的原则后台发送给服务器,浏览器检查所有储存的cookie,如果某个cookie所声明的作用范围大于或者等于精要请求的资源,所在的位置,则把该cookie附在请求资源的http请求头上发给服务器。
默认情况下,如果在某个页面创建了一个cookie,那么该页面所在目录中的其他页面也可以访问该cookie。如果这个目录下还有子目录,则在子目录中也可以访问。
语法如下: document.cookie=“name=value; path=cookieDir”; 其中cookieDir表示可访问cookie的目录。
例如: document.cookie=“userId=320; path=/shop”; 就表示当前cookie仅能在shop目录下使用。 如果要使cookie在整个网站下可用,可以将cookie_dir指定为根目录,例如: document.cookie=“userId=320; path=/”;

cookie 和session的区别

1、储存位置不同
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
2、储存容量不同
单个cookie保存的数据不超过4KB,一个站点最多保存20个Cookie。
对于session来说并没有上限,但出于对服务器端的性能考虑,session内不要存放过多的东西,并且设置session删除机制 。
3、储存方式不同
cookie中智能储存ASCII字符串,并需要通过编码方式存储为Unicode字符或者二进制数据。
ession中能够存储任何类型的数据。
4、隐私策略不同
cookie对客户端是可见的,别有用心的人可以分析存放在本地的cookie并进行cookie欺骗,所以它是不安全的。
session存储在服务器上,对客户端是透明的,不存在敏感信息泄漏的风险,相对安全。
5、有效期不同
可以通过设置cookie的属性,达到使cookie长期有效的效果。
ession依赖于名为JSESSIONID的cookie,而cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该session就会失效,因而session不能达到长期有效的效果。
6、服务器压力不同
cookie保管在客户端,不占用服务器资源。对于并发用户十分多的网站,cookie是很好的选择。
session是保管在服务器端的,每个用户都会产生一个session。假如并发访问的用户十分多,会产生十分多的session,耗费大量的内存。
7、作用域不同
cookie既能够设为本浏览器窗口以及子窗口内有效,也能够设为一切窗口内有效。
session只能在本窗口以及子窗口内有效。
8、跨域名访问
cookie支持跨域名访问。
session不支持跨域名访问。

感谢

感谢简书的小喜_ww和iteye的uule的两位博主,本篇总结多有借鉴,但仅供学习之用,冒犯之处多多见谅,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值