springboot补习系列之几种scope详解-创新互联

目标

专业领域包括网站设计、成都网站制作、成都商城网站开发、微信营销、系统平台开发, 与其他网站设计及系统开发公司不同,创新互联建站的整合解决方案结合了帮做网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,为客户提供全网互联网整合方案。
  • 了解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,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: max-age=0
Connection: keep-alive
Host: www.cnblogs.com
If-Modified-Since: Wed, 18 Jul 2018 13:47:45 GMT
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36


名称 用途
Accept 客户端期望的MIME 类型列表
Accept-Encoding 客户端期望的编解码方式
Accept-Language 客户端期望的语言
Cache-Control 缓存控制
Connection 连接行为(keep-alive)
Host 请求访问的主机
If-Modified-Since 缓存控制
Upgrade-Insecure-Requests 支持安全加密标记
User-Agent 用户代理(客户端标识)

Response

Cache-Control: private, max-age=10
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Wed, 18 Jul 2018 13:47:51 GMT
Expires: Wed, 18 Jul 2018 13:48:01 GMT
Last-Modified: Wed, 18 Jul 2018 13:47:51 GMT
Transfer-Encoding: chunked
Vary: Accept-Encoding
X-Frame-Options: SAMEORIGIN
X-UA-Compatible: IE=10


名称 用途
Cache-Control 缓存控制
Connection 连接行为(keep-alive)
Content-Encoding 编解码方式
Content-Type 内容类型(MIME)
Date 当前响应时间
Expires 文档过期时间
Last-Modified 最后一次更新时间
Transfer-Encoding 传输编码方式
Vary 需要刷新的请求Header
X-Frame-Options FRAME展示策略(用于同源控制)
X-UA-Compatible IE兼容属性

更多的** Http Header **可以从这里找到

二、SpringBoot 处理头信息

前面的内容中已经讲过如何完成Controller方法及请求的映射。


在SpringBoot可通过@RequestHeader注解方式


将请求头信息映射到参数,如下面的片段:

 @GetMapping("/some")
 @ResponseBody
 public String someHeader(@RequestHeader(value = "Host") String host,
  @RequestHeader(value = "User-Agent") String userAgent,
  @RequestHeader(value = "Cache-Control", required = false) String cacheControl,
  HttpServletResponse response) {

 logger.info("host:{}", host);
 logger.info("User-Agent:{}", userAgent);
 logger.info("Cache-Control:{}", cacheControl);

 // 设置响应头
 response.setHeader("Cache-Control", "no-cache,no-store,must-revalidate");
 response.setHeader("Pragma", "no-cache");
 response.setDateHeader("Expires", 0);
 return "OK";
 }

本文名称:springboot补习系列之几种scope详解-创新互联
浏览路径:http://hbruida.cn/article/gsisc.html