当前位置: 首页 > article >正文

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中的信息

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

在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/581056.html

相关文章:

  • 《平凡的世界》:在泥土中寻找星辰的勇气
  • XYCTF2024
  • 面试之《TypeScript泛型》
  • PostgreSQL 18新特性之虚拟生成列
  • [mybatis]resultMap详解
  • rdiff-backup备份
  • 【鸿蒙开发】Hi3861学习笔记- GPIO
  • Android 滑块开关 自定义Switch
  • 解决Element UI的el-date-picker组件默认值为当天日期但选择后不回显的问题
  • 每天一道算法题【蓝桥杯】【在排序数组中查找元素的第一个位置和最后一个位置】
  • 【MySQL篇】MySQL基本查询详解
  • 【推荐项目】Java的廊坊城市公交查询网站
  • 光谱相机检测肉类新鲜度的原理
  • 查看端口被占用命令
  • VMware安装Windows server 2016
  • # 如何确认elementary os (linux)使用的是Wayland而不是x11?
  • 【C语言】结构体篇
  • 联核科技AGV无人叉车能给企业带来哪些效益?
  • 【面试】JVM
  • 计算机考研C语言