Spring(3)—— 获取http头部信息
获取Http头部(Header)信息
1、 Header中有什么
HTTP头部信息是在客户端(如浏览器)和服务器之间传输的额外元数据,用于描述请求或响应的各种属性和特性。它由一系列键值对组成,可分为通用头部、请求头部、响应头部和实体头部。
-
通用头部:既可以出现在请求中,也可以出现在响应中。
Cache-Control:用于指定缓存策略,例如
Cache-Control: no-cache
表示不使用缓存,需要先与服务器确认资源的有效性;Cache-Control: max-age=3600
表示资源在本地缓存的有效时间为 3600 秒。Connection:管理持久连接,
Connection: keep-alive
表示客户端和服务器之间保持连接,以便后续请求可以复用该连接,减少建立连接的开销;Connection: close
则表示请求完成后关闭连接。Date:表示消息产生的日期和时间。
-
请求头部:客户端在发送请求时包含在请求中的头部信息,用于向服务器提供关于请求的更多细节。
Accept:告诉服务器客户端能够接受的响应内容类型,如
Accept:text/html,application/xhtml+xml
表示客户端优先接受text/html
类型,其次是application/xhtml+xml
等。Accept-Language:指定客户端偏好的语言。
User-Agent:包含了客户端的相关信息,如浏览器类型、版本、操作系统等,服务器可以根据这些信息为不同的客户端提供适配的内容。
Referer:表示请求是从哪个页面发起的,例如从
https://example.com/page1
页面点击链接跳转到另一个页面,那么新请求的Referer
头就是https://example.com/page1
,这有助于服务器了解用户的浏览路径,也常用于防盗链等场景。Authorization:用于向服务器提供认证信息。
-
响应头部:服务器在响应客户端请求时返回的头部信息,提供关于响应的额外信息。
Content-Type:指示响应体的内容类型,如
Content-Type: text/html; charset=UTF-8
表示响应体是 HTML 格式,字符编码为 UTF-8;Content-Type: application/json
则表示响应体是 JSON 数据。Content-Length:表示响应体的字节长度,有助于客户端知道需要接收多少数据。
Location:常用于重定向,指示客户端应该访问的新的 URL,如
Location: https://example.com/new-page
,当服务器返回 301(永久重定向)或 302(临时重定向)状态码时,通常会包含这个头部。Server:标识处理请求的服务器软件信息。
-
实体头部:描述请求或响应所携带实体(如文件、数据等)的特征。
Content-Encoding:说明实体内容的编码方式。
Last-Modified:表示资源的最后修改时间。
2、获取Header中的信息
@RequestMapping("/getHeader1")
public String getHeader1(HttpServletRequest request){
return "User-Agent = " + request.getHeader("User-Agent");
}
@RequestMapping("/getHeader2")
public String getHeader2(@RequestHeader("User-Agent") String s){
return "User-Agent = " + s;
}