springboot不创建cookie springboot cookie设置_服务器


springboot不创建cookie springboot cookie设置_servlet_02


springboot不创建cookie springboot cookie设置_服务器_03


浏览器首先创建一个cookie对象,并将cookie对象在响应时候发给浏览器,同时可以携带一些数据。浏览器就会保存数据在本地并且会自觉的在响应头中带回数据。

springboot不创建cookie springboot cookie设置_spring boot_04


Cookie相关的示例

首先生成Cookie对象,每组Cookie对象只能存一组数据,即一个key和value。 然后设置Cookie的生效的范围,以防资源的浪费。设置Cookie的生效时间会,会把Cookie存在硬盘里,至到生效时间结束。

springboot不创建cookie springboot cookie设置_spring boot_05


springboot不创建cookie springboot cookie设置_服务器_06


获取Cookie

springboot不创建cookie springboot cookie设置_java_07


cookie能够弥补HTTP无状态的情况,使用的时也很简单,Cookie不可以存敏感的信息。Cookie每次访问的时候会对性能产生影响。

演示Session

第一次请求时,服务器会产生一个session,存了当前浏览器的相关数据,ID、密码等。响应的时候服务器自动的向浏览器发送了一份Cookie,数据是有Cookie携带,Cookie中携带了sesion的ID,浏览器就会在本地存Cookie对象在本地,因此浏览器中Cookie就有了session的id。当浏览器下次请求的时候Cookie中存的就是session的id。服务器得到session的id之后就可以找到与浏览器相对应的数据。总之,session就是依赖于cookie。

springboot不创建cookie springboot cookie设置_springboot不创建cookie_08


服务器端创建session不用手动创建,与cookie不一样。服务器或者Spring MVC会帮我们自动创建。session的创建和request,Model创建一样,只要声明就会注入。Cookie只能存字符串,因为需要来回传,需要大量的数据,影响性能,需要到客户端,客户端只能识别字符串。而session因为存在于服务器所以可以存任何类型的数据,也可以存很多。

springboot不创建cookie springboot cookie设置_servlet_09


springboot不创建cookie springboot cookie设置_servlet_10


session的get方法。

springboot不创建cookie springboot cookie设置_spring boot_11


springboot不创建cookie springboot cookie设置_服务器_12

session逐渐用的越来越少,尤其是分布式下。

分布式下session用的越来越少的原因:

服务器往往是分布式部署,即多台部署,同时想浏览器提供部署。

为了负载均衡经常在浏览器和服务器之间加一个代理服务器nginx。浏览器访问的就是nginx,当访问的时候会负载均衡分发给每个服务器。

1、黏性session,假设浏览器的ip是101的话,分给服务器1去处理,即只要是同一个IP就分给同一个ip处理。这样的方式就很难保证服务器之间负载是均衡的。

2.同步session,当每一个服务创建session之后会把服务器同步给其他的服务器。这样服务器和服务器就会产生关联耦合,不是那么的独立。

3.共享session,单独搞一台服务器,用来存session,需要处理session的时候会统一放到单独的服务器中处理。其余的向单独的服务器获取。这台单独服务器挂了的时候其余服务器无法向单独服务器获取。

springboot不创建cookie springboot cookie设置_springboot不创建cookie_13


目前主流的是浏览器数据能存到Cookie就存到Cookie,敏感数据就存到数据库中。

springboot不创建cookie springboot cookie设置_java_14


我们可以不把会话的内容放到关系型数据库中,也可以放到redis中。

对于一些数据适合存到数据库就存到数据库,不适合的就存到redis中。

springboot不创建cookie springboot cookie设置_servlet_15