什么是cookie(怎么设置cookie)

文章目录

  • Cookie:
  • 会话:
  • Cookie和session的区别:Cookie和Session都可以跟踪会话,只是完成的原理不同。

与cookie和会话的区别

Cookie:

Cookies是由服务器存储在本地机器上的小块文本,并随着每个请求发送到同一个服务器。IETF RFC 2965 HTTP状态管理机制是一个通用的cookie规范。服务器向客户端发送带有HTTP头的cookies。在客户端,浏览器解析这些cookie并将其保存为本地文件,这将自动将来自同一服务器的任何请求绑定到这些cookie。cookie的内容主要包括:名称、值、过期时间、路径和域。

具体来说,cookie机制采用在客户端保存状态的方案。它是客户端的会话状态存储机制,需要用户的cookie支持才能打开客户端。cookie的作用是努力解决HTTP协议的无状态缺陷。

会话:

会话机制采用一种在服务器端保持状态的解决方案。同时我们也看到,由于服务器端的状态保持方案也需要在客户端保存一个标识符,所以会话机制可能需要cookie机制来保存标识符。会话提供了一种管理全局变量的便捷方式。会话是针对每个用户的,变量的值保存在服务器上。sessionID用于区分它是哪个用户会话变量。该值在访问时通过用户的浏览器返回给服务器。当客户禁用cookie时,这个值也可以设置为由get返回给服务器。

Cookie和session的区别:Cookie和Session都可以跟踪会话,只是完成的原理不同。

1.只有ASCII字符串可以用访问方法保存在不同的Cookie中。如果需要访问Unicode字符或二进制数据,首先需要对它们进行编码。Cookie不能直接访问Java对象。要存储稍微复杂的信息,使用Cookie是相当困难的。会话可以访问任何类型的数据,包括但不限于字符串、整数、列表、映射等。Session还可以直接存储Java Bean甚至任何Java类和对象,使用起来非常方便。Session可以看作是一个Java容器类。

2.隐私策略的不同cookies存储在客户端阅读器中,这对客户端是可见的。客户端的某些程序可能会窥探、复制甚至修改cookies的内容。会话存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险。

如果使用cookie,更好的办法是尽量不要把账号密码等敏感信息写入cookie。最好像Google和百度一样对Cookie信息进行加密,提交到服务器后再解密,这样才能保证Cookie中的信息自己可以读取。而如果选择Session,就简单多了。不管怎样,如果你把它放在服务器上,会话中的任何隐私都可以得到有效的保护。

3.有效期不同用过Google的人都知道,如果登录过Google,Google的登录信息会长期有效。用户不必每次访问都重新登录。Google将永久记录该用户的登录信息。要达到这种效果,使用Cookie会是更好的选择。您只需要将Cookie的到期时间属性设置为一个非常非常大的数字。由于会话依赖于名为jsSessionid的Cookie,而Cookie JSESSIONID的过期时间被默认为–1,如果关闭阅读器,会话将无效,因此会话无法达到信息永远有效的效果。无法完成重写URL地址。而且如果设置Session的超时时间过长,服务器会积累更多的Session,容易导致内存溢出。

4.服务器压力不同的会话都保存在服务器端,每个用户都会生成一个会话。如果有很多用户并发访问,会有很多会话,会消耗很多内存。因此,Google、百度、新浪等并发访问量极高的网站,不太可能使用Session来跟踪客户对话。Cookie保存在客户端,不占用服务器资源。如果有很多用户同时阅读,Cookie是一个不错的选择。就谷歌、百度、新浪而言,Cookie可能是唯一的选择。

5.浏览器支持的不同Cookie需要得到客户端浏览器的支持。如果客户端禁用cookie,或者不支持cookie,会话跟踪将无效。对于WAP上的应用,传统的Cookie是没有用的。如果客户端浏览器不支持Cookie,您需要使用会话和URL地址重写。需要注意的是,所有使用会话程序的URL都必须重写,否则会话跟踪将无效。就WAP应用而言,重写会话URL地址可能是其唯一的选择。如果客户端支持cookie,可以在此浏览器窗口和子窗口(将过期时间设置为–1)或所有阅读器窗口(将过期时间设置为大于0的整数)中将cookie设置为有效。但是会话只能在这个阅读器窗口及其子窗口中有效。如果两个浏览器窗口彼此无关,它们将使用两个不同的会话。(IE8下不同窗口的会话一致性)

6.跨域支持上不同的Cookies支持跨域访问。例如,如果域属性设置为“. biaodianfu.com”,则所有带有“. biaodianfu.com”后缀的域名都可以访问cookie。跨域Cookie现在广泛应用于网络中,如Google、百度、新浪等。会话不支持跨域访问。Session只在他所在的域名有效。

仅使用Cookie或Session可能达不到预期的效果。这时候你要尽量同时使用Cookie和Session。Cookie和Session的结合会在实际项目中完成很多意想不到的效果。

“张承辉博客” 什么是cookie(怎么设置cookie) https://www.zhangchenghui.com/216791

(0)
上一篇 2022年6月26日 上午2:33
下一篇 2022年6月26日 上午2:33

相关阅读

发表回复

登录后才能评论