目标
- 了解HTTP 请求/响应头及常见的属性;
- 了解如何使用SpringBoot处理头信息 ;
- 了解如何使用SpringBoot处理cookie ;
- 学会如何对 Session 进行读写;
- 了解如何在不同请求间传递 flash参数
一、Http 头信息
HTTP 头(Header)是一种附加内容,独立于请求内容和响应内容。
HTTP 协议中的大量特性都通过Header信息交互来实现,比如内容编解码、缓存、连接保活等等。
如下面的一个请求响应:
Request
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,* @GetMapping("/first") public String first(final RedirectAttributes redirectAttrs) { logger.info("redirect start:{}"); redirectAttrs.addFlashAttribute("flash", UUID.randomUUID().toString()); return "redirect:/flash/second"; } @GetMapping("/second") @ResponseBody public String second(@ModelAttribute("flash") String flash) { logger.info("redirect receive {}", flash); return flash; }
交互原理
Sprintboot中Flash机制也是利用Session实现的,其中FlashMapManager接口实现了Flash参数的管理。
默认的实现是SessionFlashMapManager,可以通过RequestContextUtils获得上下文中的FlashMapManager对象。
RequestContextUtils通过Request Scope(请求上下文)存取对象
这也是一个本文未提及的scope域,Request上下文是利用线程变量实现的,通常用于线程内业务处理的数据交互。
小结
HTTP 头信息是一种附加内容,用于实现HTTP协议中的各种特性,在开始部分介绍了常见的头信息定义。
本文主要介绍了几种常见的HTTP scope信息的存取方法,包括如何对header、cookie进行读取及修改。
springboot 内嵌了Servlet容器,会话处理机制上沿用了JSESSIONID,通过代码示例介绍了会话的处理方法;
Flash参数是一种阅后即焚的数据,其底层实现也用了session的实现方案。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对考高分网的支持。



