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


相关推荐
win x17 小时前
Redis 主从复制
java·数据库·redis
weixin_4239950018 小时前
unity 处理图片:截图,下载,保存
java·unity·游戏引擎
帅气的你18 小时前
从零封装一个通用的 API 接口返回类:统一前后端交互格式
java·设计模式
qq_1780570718 小时前
基于minio实现的分片上传-支持断点续传
java
高山上有一只小老虎18 小时前
灵异背包?
java·算法
码农水水18 小时前
大疆Java面试被问:TCC事务的悬挂、空回滚问题解决方案
java·开发语言·人工智能·面试·职场和发展·单元测试·php
qq_25183645718 小时前
基于java Web 个人网站系统设计与实现
java·开发语言·数据库
帅气的你18 小时前
Spring Boot 1.x 接口性能优化:从 3 秒到 200 毫秒的实战调优之路
java·spring boot
原神启动118 小时前
K8S(五)—— YAML文件解析
java·容器·kubernetes
周末吃鱼18 小时前
Lambda作用域
java·开发语言