首页 > 其他分享 >Http 请求 header 大小写有区别吗?

Http 请求 header 大小写有区别吗?

时间:2024-08-22 17:04:15浏览次数:10  
标签:Map Http 请求 获取 忽略 header 大小写 LinkedCaseInsensitiveMap

后端:

参考:- java - APP 莫名崩溃,开始以为是 Header 中 name 大小写的锅,最后发现原来是容器的错! - 小航的技术笔记 - SegmentFault 思否

Q: 这么多获取 Header 的方式有什么区别?
A:

不同的容器下实现方式不同,这里列表说明

undertow tomcat jetty
请求参数大小写转换 不变 小写 驼峰
直接获取请求头某一个 headerName 忽略大小写,不能为空 忽略大小写,不能为空 忽略大小写,不能为空
使用 Map 获取所有请求头 Map 的 key 和传入 headerName 大小写的一致,保持一致可获取到 Map 的 key 全是小写,需要使用小写headerName 获取 Map 的 key 是驼峰命名法,要使用驼峰命名才可以获取到
使用 MultiValueMap 获取请求头 实际是从 LinkedHashMap 中获取,区分大小写 实际是从 LinkedHashMap 中获取,区分大小写 从 LinkedCaseInsensitiveMap 获取,不区分大小写
使用 HttpHeaders 获取请求头 从 LinkedCaseInsensitiveMap 获取,不区分大小写 从 LinkedCaseInsensitiveMap 获取,不区分大小写 从 LinkedCaseInsensitiveMap 获取,不区分大小写
使用 HttpServletRequest 获取 使用 HttpString.hashCodeOf(headerName) 忽略了大小写 调用 MimeHeaders#getValue 忽略了大小写 HttpFields#get 忽略了大小写

通过表格发现,即使是不同的容器在使用 HttpHeaders 获取请求头是都是调用了 Spring 的 LinkedCaseInsensitiveMap 获取 header,并且内部忽略了大小写,这里比较推荐使用。
同样使用 HttpServletRequest 的方式获取也比较推荐。

前端:

标签:Map,Http,请求,获取,忽略,header,大小写,LinkedCaseInsensitiveMap
From: https://www.cnblogs.com/sunupo/p/18374304

相关文章

  • 安装metrics-server遇到Readiness probe failed HTTP probe failed with statuscode 5
    安装metrics-server后显示Running,但是READY状态一直为0/1,通过describe查询到如下内容Readinessprobefailed:HTTPprobefailedwithstatuscode:5001.报错内容root@master:~/metrics-server#kubectlgetpods-nkube-systemmetrics-server-dd7677d75-grfcqNAME......
  • C# HttpClient 公共类
    HttpClientService.cs:///<summary>///HTTP请求方法///兼容微信支付V3版本api请求///</summary>publicclassHttpClientService{privatestaticHttpClientService_instance;privatestaticreadonlyobject_lock=ne......
  • 关于http基本认识
    一、概念引入HTTP协议是HyperTextTransferProtocol(超文本传输协议)的缩写,平时上网时,浏览器基本都是基于该协议与服务器通信的,HTTP是基于TCP/IP协议来传输数据的,包括HTTP文件、图片、查询结果等。HTTP是一个典型的C/S(即client-server)协议:请求通过一个实体被发出,实体也就是......
  • HTTP和RPC接口的区别?
        大家在面试的过程中,经常会被问到一个问题,那就是HTTP和RPC接口的区别,接下来,就跟随小k的步伐,一起来探究一下这两个接口的区别吧!    HTTP和RPC接口是两种常见的接口通信协议,本文将介绍他们的定义,区别和相似之处,应用场景。HTTP接口HTTP接口是一种应用层通信协......
  • LoadRunner 12.55 解决录制 HTTPS网站,脚本空白问题
    背景:最近工作中项目有性能测试需求,但团队小伙伴用loadrunner12.55遇到https站点录制出来的脚本Action为空白,以往处理方式直接让项目团队将https改成http再重新录制痛点:修改http耗时长分析:项目web主要是内网使用,使用自签名证书,而loadrunner无该证书导致LoadrunnerProxyServer......
  • 升级http协议
    map$http_upgrade$connection_upgrade{defaultupgrade;''close;}map指令:map指令用于创建一个变量映射。它根据一个变量的值来设置另一个变量的值。在这个例子中,它根据$http_upgrade变量的值来设置$connection_upgrade变量的值。$http_upgrade:这是一个内......
  • http实现form表单带CSV附件上传,数据不落盘实现方式
    以往的印象里面,实现附件上传需要有附件在磁盘里面存在(可能是见识浅薄),想着怎么去优化一下,避免落盘,就引入了这种方式,实现很容易,只是没有实践过,实践导致认知限制<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</arti......
  • TCP,UDP,Socket,Http网络编程面试题 47道
    1.什么是网络编程        1.网络编程的本质是多台计算机之间的数据交换。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给其他设备,然后接受另外一个设备反馈的数据。现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另......
  • ArkTS---http数据请求
    前言:    要使用http请求,需在module.json5文件中添加网络管理权限"module":{"requestPermissions":[{"name":"ohos.permission.INTERNET"}]}一、使用步骤    1、导入http模块        HTTP数据请求功能主要由http模块......
  • 小学智慧教育平台(网址:https://basic.smartedu.cn
    信息科技教学指南及配套课件,可在国家中小学智慧教育平台免费使用  导读:日前,教育部发布关于印发《2024年义务教育国家课程教学用书目录(根据2022年版课程标准修订)》的通知,根据2022年版义务教育课程标准修订的教材将于2024年秋季学期陆续投入使用。 注:以下附文件全文及......