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


相关推荐
林深的林13 分钟前
Http证书体系及证书加密流程(通信流程)
网络协议·http·https
我命由我123452 小时前
Kotlin 数据容器 - List(List 概述、创建 List、List 核心特性、List 元素访问、List 遍历)
java·开发语言·jvm·windows·java-ee·kotlin·list
武子康4 小时前
Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效
java·分布式·后端·spring·微服务·rpc·dubbo
YuTaoShao7 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
源码_V_saaskw7 小时前
JAVA图文短视频交友+自营商城系统源码支持小程序+Android+IOS+H5
java·微信小程序·小程序·uni-app·音视频·交友
超浪的晨7 小时前
Java UDP 通信详解:从基础到实战,彻底掌握无连接网络编程
java·开发语言·后端·学习·个人开发
双力臂4048 小时前
Spring Boot 单元测试进阶:JUnit5 + Mock测试与切片测试实战及覆盖率报告生成
java·spring boot·后端·单元测试
心之语歌8 小时前
Spring AI MCP 客户端
人工智能·spring·github
Edingbrugh.南空8 小时前
Aerospike与Redis深度对比:从架构到性能的全方位解析
java·开发语言·spring
自由鬼8 小时前
Apache HTTP Server 2.4.49 的目录遍历漏洞CVE-2021-41773
网络协议·http·apache