• 【Java面试小短文】Cookie和Session的区别


    欢迎关注Java面试系列,不定期更新面试小短文。欢迎一键三连!

    Cookie和Session的区别

      Cookie是客户端浏览器用来保存服务端数据的一种机制,当我们通过浏览器去进行网页访问的时候,服务器可以把某一些状态数据以key-value的形式写入到Cookie中,然后存储到客户端浏览器。下一次再访问服务器的时候,我们可以携带这一些状态数据发送到服务器端,服务器端可以根据Cookie里面携带的内容去识别使用者。

      Session它表示一个会话,它是属于服务器端的一个容器对象,默认情况下,针对每一个浏览器的请求,Servlet容器都会分配一个Session对象,Session本质上可以认为是一个ConcurrentHashMap,它可以用来存储当前会话产生的一些状态数据。

      HTTP协议本身是一个无状态协议,也就是说,服务器端并不知道客户端发送过来的多次请求是属于同一个用户,所以Session是用来弥补HTTP无状态的一个不足,服务器端可以利用Session来存储客户端在同一个会话里面产生的多次请求的记录,基于服务器的Session存储机制,再结合客户端的Cookie机制,我们就可以去实现一个有状态的HTTP协议。

    工作原理如下:

      客户端第一次访问服务器端的时候,服务器端会针对这次请求创建一个会话,并且生成一个唯一的sessionId来标识这个会话,然后服务器端把这个sessionId写入到客户端浏览器的cookie里面,用来去实现客户端状态的保存,接着在后续的请求里面,每一次都会携带sessionId,服务器端就可以根据sessionId来识别当前这个会话的状态。


    欢迎一键三连~

    有问题请留言,大家一起探讨学习

    ----------------------Talk is cheap, show me the code-----------------------
  • 相关阅读:
    Okhttp通用工具类
    关于控制器使用自定义AOP切面报错问题
    C++欧几里得算法求最大公约数和最小公倍数
    61.旋转链表
    interview6-jvm篇
    济宁百万亩水稻 国稻种芯·中国水稻节:山东稻田退水治理模式
    rv1126-rv1109-yaffs2-mkyaffs2image610
    两招提升硬盘存储数据的写入效率
    GPIO实验
    电脑中的opencl.dll丢失怎么办,三步解决opencl.dll丢失
  • 原文地址:https://blog.csdn.net/qq_34115899/article/details/126375887