zoukankan      html  css  js  c++  java
  • cookie和session的区别

    一、相同点

    作用:都是用来跟踪浏览器用户身份的会话方式

    二、工作原理

    1、Cookie的工作原理

    (1)浏览器端第一次发送请求到服务器端

    (2)服务器端创建Cookie,该Cookie包含用户的信息,然后将该Cookie发送到浏览器端

    (3)浏览器端再次访问服务器端时会携带该Cookie

    (4)服务器端通过Cookie中携带的数据区分不动的用户

    2、Session的工作原理

    (1)浏览器端第一次发送请求到服务器端,服务器端创建一个Session,同时会创建一个特殊的Cookie(name为JSESSIONID的固定值,value为session对象的ID),然后将该             Cookie发送至浏览器端
    (2)浏览器端发送第N(N>1)次请求到服务器端时,会携带该Cookie对象
    (3)服务器端根据Cookie的value(sessionId),去查询Session对象,从而区分不同用户。
      Cookie不存在(关闭或更换浏览器),返回1中重新去创建Session与特殊的Cookie
      Cookie存在,根据value中的SessionId去寻找session对象
        SessionId不存在**(Session对象默认存活30分钟)**,返回1中重新去创建Session与特殊的Cookie
        SessionId存在,返回session对象

    三、cookie和session的区别

    1、cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的。

    2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session

    3、session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能,考虑到减轻服务器性能方面,应当使用cookie

    4、单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie。

    5、可以将登陆信息等重要信息存放为session。

     总结:

    由于HTTP是一种无状态协议,服务器没有办法单单从网络连接上面知道访问者的身份,为了解决这个问题,就诞生了Cookie

    Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie

    客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,

    以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

    实际就是颁发一个通行证,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理

    cookie可以让服务端程序跟踪每个客户端的访问,但是每次客户端的访问都必须传回这些 Cookie,如果 Cookie 很多,这无形地增加了客户端与服务端的数据传输量,

    Session 的出现正是为了解决这个问题。同一个客户端每次和服务端交互时,不需要每次都传回所有的 Cookie 值,而是只要传回一个 ID,这个 ID 是客户端第一次访问服务器的时候生成的, 而且每个客户端是唯一的。这样每个客户端就有了一个唯一的 ID,客户端只要传回这个 ID 就行了,这个 ID 通常是 NANE 为JSESIONID 的一个 Cookie。

    参考连接:https://blog.csdn.net/chen13333336677/article/details/100939030

         https://blog.csdn.net/jnshu_it/article/details/79894570(cookie,session,token)

  • 相关阅读:
    Linux常用命令大全(非常全!!!)
    Springboot项目与vue项目整合打包
    Spring Boot开启Druid数据库监控功能
    (八)CXF添加自定义拦截器
    (七)CXF添加拦截器
    (六)cxf处理一些Map等复杂类型
    (无)webservice执行过程深入理解
    (四)CXF处理JavaBean以及复合类型
    (三)使用CXF开发WebService客户端
    (二)使用CXF开发WebService服务器端接口
  • 原文地址:https://www.cnblogs.com/zh-xiaoyuan/p/15311349.html
Copyright © 2011-2022 走看看