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

Posted 砖业洋__

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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-----------------------

以上是关于Java面试小短文Cookie和Session的区别的主要内容,如果未能解决你的问题,请参考以下文章

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

Java基础面试题

Java面试小短文怎样防止缓存击穿?

Java面试小短文怎样防止缓存击穿?

Java面试14|Session与Cookie

Java面试小短文Spring 如何解决循环依赖?