Cookie与Session的区别与联系

版权声明:----------转载请注明出处---------- https://blog.csdn.net/Zhang_hongxin/article/details/82142981

    Cookie和Session都是JavaWeb开发中常用的会话跟踪技术,许多网站的记住密码功能,电商网站的购物车功能都是由Cookie或Session实现的。

    Cookie

    Cookie是HTTP协议的规范之一,用于在服务器与客户端之间传递数据。当服务端收到了客户端的请求进行响应时,服务端通过响应头将Cookie传递给客户端,客户端将Cookie保存起来,当客户端再次访问同一个服务器时,也会将保存的Cookie方法请求头中传递给服务端。可以实现用户记住密码,购物车功能等。

    Cookie是保存在客户端的以key、value形式存在的数据。

    

    这是访问百度文库时的部分Cookie数据。

    Session

    服务端可以在浏览器每次访问服务器时为客户端创建一个Session对象(会话对象),默认情况下每个浏览器独占一个Session对象,当用户需要保存数据时,可以将数据保存在Session中,当浏览器在访问其他程序时,其他程序可以从Session中取出用户数据,提高操作效率。

    Session是依赖于Cookie实现的,当客户端第一次访问服务器时,服务器就会创建一个Session对象,并且同时创建一个Cookie,在Cookie中保存了Session的id,当客户端再次访问服务器时,服务端根据Cookie中的D来识别Session对象,这个Cookie保存在浏览器内存中,当浏览器关闭,这个Cookie就会消失,再次打开浏览器将会重新开启新的Session。

Cookie与Session的区别

①:Cookie是保存在客户端的数据,Session是保存在服务端的数据。

②:Session的运行依赖Cookie中的session_id,如果浏览器禁用了Cookie,则也将无法使用Session。(可以通过在url中传session_id来实现)

③:因为Cookie保存在浏览器端,所以Cookie有可能被伪造进行Cookie欺骗,一定程度上不安全,所以需要安全性的数据还是要保存在Session中。(如用户验证)

扫描二维码关注公众号,回复: 3028931 查看本文章

④:由于Session存在于服务器端,如果都将数据保存在Session中,会大量占用服务器的资源。(可以用单独的Session服务器解决)

⑤:单个Cookie的大小不能超过4K,而且很多浏览器也对Cookie的数量有限制。

    

猜你喜欢

转载自blog.csdn.net/Zhang_hongxin/article/details/82142981