目标
专业领域包括网站设计、成都网站制作、成都商城网站开发、微信营销、系统平台开发, 与其他网站设计及系统开发公司不同,创新互联建站的整合解决方案结合了帮做网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,为客户提供全网互联网整合方案。一、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"; }