Spring(3)—— 获取http头部信息

获取Http头部(Header)信息

1、 Header中有什么

HTTP头部信息是在客户端(如浏览器)和服务器之间传输的额外元数据,用于描述请求或响应的各种属性和特性。它由一系列键值对组成,可分为通用头部、请求头部、响应头部和实体头部。

  1. 通用头部:既可以出现在请求中,也可以出现在响应中。

    Cache-Control :用于指定缓存策略,例如 Cache-Control: no-cache 表示不使用缓存,需要先与服务器确认资源的有效性;Cache-Control: max-age=3600 表示资源在本地缓存的有效时间为 3600 秒。

    Connection :管理持久连接,Connection: keep-alive 表示客户端和服务器之间保持连接,以便后续请求可以复用该连接,减少建立连接的开销;Connection: close 则表示请求完成后关闭连接。

    Date:表示消息产生的日期和时间。

  2. 请求头部:客户端在发送请求时包含在请求中的头部信息,用于向服务器提供关于请求的更多细节。

    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:用于向服务器提供认证信息。

  3. 响应头部:服务器在响应客户端请求时返回的头部信息,提供关于响应的额外信息。

    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:标识处理请求的服务器软件信息。

  4. 实体头部:描述请求或响应所携带实体(如文件、数据等)的特征。

    Content-Encoding:说明实体内容的编码方式。

    Last-Modified:表示资源的最后修改时间。

2、获取Header中的信息

java 复制代码
 @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;
    }


相关推荐
揣晓丹16 分钟前
JAVA实战开源项目:健身房管理系统 (Vue+SpringBoot) 附源码
java·vue.js·spring boot·后端·开源
编程轨迹_17 分钟前
使用 Spring 和 Redis 创建处理敏感数据的服务
java·开发语言·restful
奔驰的小野码23 分钟前
SpringAI实现AI应用-自定义顾问(Advisor)
java·人工智能·spring boot·spring
我尽力学28 分钟前
Spring、SpringMVC、SpringBoot、SpringCloud 联系与区别
spring boot·spring·spring cloud
奔驰的小野码28 分钟前
SpringAI实现AI应用-使用redis持久化聊天记忆
java·数据库·人工智能·redis·spring
裁二尺秋风43 分钟前
k8s(11) — 探针和钩子
java·容器·kubernetes
极客智谷1 小时前
Spring AI 系列——使用大模型对文本内容分类归纳并标签化输出
人工智能·spring·分类
一方~2 小时前
XML语言
xml·java·web
LSL666_2 小时前
Java——多态
java·开发语言·多态·内存图
麓殇⊙2 小时前
CurrentHashMap的整体系统介绍及Java内存模型(JVM)介绍
java·开发语言·jvm