• cookie和session的区别


    首先要区分它们,我们要先明白它们各自的定义是什么。

    Cookie

      Cookie是在Http协议下,服务器或脚本可以维护客户工作站上消息的一种方式。Cookie是由Web服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的消息。无论何时用户链接到服务器,Web站点都可以访问Cookie消息。

    功能

      在同一个页面中设置Cookie,实际上是按从后往前的顺序进行的。如果要先删除有关Cookie,在写入有关Cookie,就必须先写写入语句,在写删除语句,否则会出现错误。

      Cookie是面向路径的。缺省路径属性时,Web服务器就会知道传递当前路径给浏览器,指定路径强制服务器使用设置的路径。在一个目录页里设置的Cookie在另一个目录的页面里是看不到的。

      Cookie必须在HTML文件的内容输出之前设置;不同的浏览器对Cookie的处理不一致;客户端用户如果设置禁止Cookie,则Cookie不能建立。并且在客户端一个浏览器能促进的Cookie数量最多为300个。而且每个不超过4KB,每个Web站点能设置的Cookie总数不能错过20个

    Session

      Session是一种保存上下文信息的机制,它是针对每一个用户的,Session的内容在服务器端,通过SessionId来区分不同的客户,Session是以Cookie或url重写为基础的,默认用Cookie来实现。

      当一个Session第一次被启用时,一个唯一的标识被存储于本地的Cookie中。

    区别

      1.Session保存在服务器,浏览器(客户端)不知道其中的消息;Cookie保存在浏览器(客户端),服务端可以知道其中的消息。所有在打开另一个浏览器后,Cookie的值就不同了,而Session保存的对象,只要不关闭服务器,还是一样的。

      2.Session保存的是对象,Cookie保存的是字符串

      3.Session不能区分路径,同一个用户在访问一个网站期间,所有的Session在任何一个地方都可以访问到,而Cookie如果设置了路径参数,那么同一个网站中不同的路径下的Cookie相互之间是访问不到的。

      4.Session是需要借助Cookie才能正常工作的,所有说Session是基于Cookie的基础上实现的,如果浏览器(客户端)完全禁止Cookie,那么Session也会失效。

  • 相关阅读:
    AI中台
    java的static关键字
    java多线程面试题整理及答案(2019年)
    一篇搞懂TCP的三次握手四次挥手
    异步注解Async
    常用的SQL语句大全
    用Intellij Idea导出可执行的jar包
    用Intellij Idea从Github上获取代码
    Thread线程源码解析,Java线程的状态,线程之间的通信
    dubbo配置启动时检查
  • 原文地址:https://www.cnblogs.com/wfhking/p/9502468.html
Copyright © 2020-2023  润新知