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;
    }


相关推荐
桦说编程5 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
lifallen5 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研5 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
没有bug.的程序员6 小时前
JVM 总览与运行原理:深入Java虚拟机的核心引擎
java·jvm·python·虚拟机
玩转以太网6 小时前
基于W55MH32Q-EVB 实现 HTTP 服务器配置 OLED 滚动显示信息
服务器·网络协议·http
甄超锋6 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
阿华的代码王国6 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Zyy~6 小时前
《设计模式》装饰模式
java·设计模式
A尘埃6 小时前
企业级Java项目和大模型结合场景(智能客服系统:电商、金融、政务、企业)
java·金融·政务·智能客服系统
青云交7 小时前
Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用(398)
java·大数据·flink·大数据可视化·拥堵预测·城市交通治理·实时热力图