首页 > 其他分享 >前端接口请求HTTP设置自定义header属性字段大小写问题

前端接口请求HTTP设置自定义header属性字段大小写问题

时间:2023-10-23 10:02:35浏览次数:35  
标签:HTTP 自定义 前端 接口 header token 大小写 小写

问题:

接口请求头传token值的字段为tokenValue,需要用到token的接口一直不能成功请求。

后端排查发现没有接收到token,前端虽然传了token值,但是发现浏览器把tokenValue变成了Tokenvalue,导致后端没正确接收到token值。

原因是:

HTTP RFC 里规定,大小写不敏感。

HTTP/1.x 大小写不敏感,但现实是需要做到敏感的。

现在有的服务逐步在开启HTTP/2了,HTTP/2 和 HTTP/1.x 同样使用 ASCII 字符集,但 HTTP/2 头部必须使用小写,而不像 HTTP/1.x 大小写均可。

解决方案:

服务端在接收的时候,都做一下大小写转换,做下兼容处理,避免一些因不规范导致的问题出现。

总结:

对于任意网络协议,客户端在上层跟踪数据包有一定难度,所以先用抓包工具辅助是很好的习惯。

尽管各种协议更新演进,如果前端(业务代码、依赖库版本)或后端任意一方出现协议不兼容或实现不严谨,排查问题难度较高,所以应尽可能做到细致严谨。

对客户端来说,把所有HTTP的Header键字符串转换为小写,业务匹配时也用小写键名称(即equalsIgnoreCase)可同时适配 HTTP/2 和 HTTP/1.x。注意,如果转小写后出现多个相同Header,必须要求服务端修正,同时前端调整代码。

参考:

https://datatracker.ietf.org/doc/html/rfc7540#section-8.1.2

https://www.ietf.org/rfc/rfc2616.txt


标签:HTTP,自定义,前端,接口,header,token,大小写,小写
From: https://blog.51cto.com/u_16307147/7983294

相关文章

  • Linux编译安装 drogon(高性能http服务器)
    实际上还是建议用Ubuntu进行编译,要方便的多drogon编译安装:https://zhuanlan.zhihu.com/p/601632372drogon编译安装:https://wenku.baidu.com/view/4408ed4e84c24028915f804d2b160b4e777f8150.html一、编译前置依赖项目jsoncpp#项目地址:https://github.com/open-source-pars......
  • Https 安全协议版本支持检测工具
    需求:帮朋友做了一个小工具,主要目的是检查局域网(在线检查网站无法访问内网)的https站点配置的安全协议版本,方便给第三方提供接口文档,描述https站点所使用的安全协议。相信大家在开发过程中,可能会遇到“Therequestwasaborted:CouldnotcreateSSL/TLSsecurechannel”异常,......
  • HTTPS 的加密流程
    HTTPS是在HTTP的基础上进行了一层加密,加密就是把明文(要传输的信息)进行一系列变换,生成密文。解密就是把密文再进行一系列变换,还原成明文。在这个加密和解密的过程中,往往需要一个或者多个中间的数据,辅助进行这个过程,这样的数据称为密钥。HTTPS的工作过程既然要......
  • web入门-HTTP协议
    web入门-HTTP协议-概述HTTP概念:HyperTextTransferProtocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。特点:基于TCP协议:面向连接,安全基于请求-响应模型的:一次请求对应一次响应HTTP协议是无状态的协议,对于事务处理没有记忆能力。每次请求-响应都是独立的。......
  • 从零用VitePress搭建博客教程(5) - 如何自定义页面模板、给页面添加独有的className和
    接上一节:从零用VitePress搭建博客教程(4)–如何自定义首页布局和主题样式修改?上一节其实我们也简单说了自定义页面模板,这一节更加详细一点说明,开始之前我们要知道在vitePress中,.md的文件是可以直接编写vue的代码的。比如我们现在来自定义一个前端网址导航页面八、自定义一些......
  • Uni-App Http请求
    该插件适用于一般的请求场景,只支持post、get、put和delete请求,目前不适用于其他的请求形式,比如上传,下载等。插件定位为小而美,而不是大而全,目标是切合实际,开箱即用。平台差异说明AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序√√√√√√√由于某......
  • 无涯教程-AWK - 自定义函数
    函数是程序的基本构建块,AWK允许我们定义自己的函数,大型程序可以分为函数,每个函数可以独立编写/测试。它提供了代码的可重用性。下面给出的是用户定义函数的一般格式-functionfunction_name(argument1,argument2,...){functionbody}在此语法中,function_name是用户......
  • Java基础 自定义异常
    自定义异常的意义:让控制台的报错信息更加见名知意 步骤:1.定义异常类,类名要见名知意2.写继承关系。如果定义的异常是运行时异常,要继承RuntimeException;如果是编译时异常,直接继承Exception3.写空参构造4.写带参构造......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉
    在我们开发的前端项目中,往往为了方便,都需对一些控件进行自定义的处理,以便实现快速的数据绑定以及便捷的使用,本篇随笔介绍通过抽取常见字典列表,实现通用的字典类型绑定;以及通过自定义控件的属性处理,实现系统字典内容的快捷绑定的操作。1、下拉列表的数据绑定在我们创建下拉列表的......
  • NGINX 安装 SSL 证书 - 开启 HTTPS 访问
    在NGINX上安装SSL证书-开启HTTPS访问一、在你开始之前请确保您已下载证书文件。没有证书?请从https://www.sslforfree.com上申请90天免费证书。下载证书后,您应该有一个包含以下证书文件的ZIP:certificate.crtca_bundle.crtprivate.key二、上传证书文件首先,......