服务器返回400错误

article/2025/10/4 5:30:22

运维的项目,莫名其妙的有些接口报了400错误,和前端一起检查了传参格式、传参实体类是否一一对应等,因为入参有中文,顺带把编码格式也查了,但都没问题,而且最神奇的是,正式服该接口就报400错误,在自己搭建的测试服上跑完全相同的入参,就没问题,搞得头皮发麻,最后到处乱转博客时,看到有个人说,tomcat高版本可能导致url中含有特殊字符,而导致报400错误。

最后才想到,前几天因为等保检测的原因,运维组那边把tomcat7换成了8。(我是开发,因为这个项目比较难,才扔给我运维)
然后才让前端把url进行特殊处理测试了一下,发现OK了,然后确定是tomcat版本过高导致的。
确定问题后,就是咋解决,当时我提出了三个方法:
1、前端把所有url都进行处理。(前端容易砍死我,而且这个是祖传项目,不太好改)
2、跟业主那边商量,换回tomcat7。(这个项目等保一年一测,可以忽悠过去,但是出了安全问题,需要我们负责)
3、修改tomcat的配置。(我当时跟老大说我先试试第三个方法,如果不行再想办法)

第三个办法的解决方法就是:
配置tomcat的catalina.properties
添加或者修改:
tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
在这里插入图片描述
但是呢,这个方法是有限制的,这里tomcat的开发人员,是把所有特殊字符都限制了的,然后那些实际使用人员,讨价还价后,增加了可以使用 | { } 这个三个特殊符号,其他符号依旧不行。(我公司自己的框架,就有#这种特性符号。。。)

如果遇到这种情况,可以讨论修改tomcat配置后,前端对有特殊符号的url进行处理。
进行url跳转时可以整体使用encodeURI
例如:Location.href=encodeURI(“http://cang.baidu.com/do/s?word=百度&ct=21”);


http://chatgpt.dhexx.cn/article/QNPVL39W.shtml

相关文章

JAVA400错误_程序访问一个地址时候报400错误,浏览器访问正常怎么解决

最近凯哥在调程序的时候,发现以前好好的程序,突然不能用了。于是就本地断点,发现了如下错误: 程序通过httpClient访问一个地址的时候,提示:server returned HTTP Response code :400 fro URL:XX…

tomcat 400错误

本片文章是对tomcat 400 错误造成信息泄露,如何进行修复进行描述,希望可以对非安全专业的互联网工作人员提供一点帮助,本片文章内容确实也是笔者最近遇到的一些问题。 漏洞描述 tomcat 发生400 错误,暴露出中间件版本、以及程序…

html400错误,http400错误如何解决

还有不少小伙伴们都碰到了http400错误如何解决这个疑惑吧,那么究竟该怎样解决呢?不妨就让iefans网小编告诉大家处理http400错误方法讲解,希望能够帮助到各位解决这个问题。 方法/步骤分享: 一、前端ajax请求,修改需要使…

接口400错误解析

今天我遇上一个让我很痛心的错误400。对程序员来说,这可能是一个最简单的错误码。因为这个相应并没有进拦截器,更没有进到Controller层。可我在解决这个问题时,质询了很多朋友不解,百度各种方案无效。苦苦耗费我大半天时间。 首先…

400错误请求怎么解决_什么是400错误请求错误(以及如何解决)?

400错误请求怎么解决 A 400 Bad Request Error occurs when a request sent to the website server is incorrect or corrupt, and the server receiving the request can’t understand it. Occasionally, the problem is on the website itself, and there’s not much you c…

HTTP 400错误

HTTP 400错误: 400 是 HTTP 的状态码,主要有两种形式: 1、bad request 意思是 “错误的请求”;2、invalid hostname 意思是 “不存在的域名”。 400 Bad Request 是由于明显的客户端错误(例如,格式错误的…

rapidjson安装学习

这里主要记录几个要点,后面来补充吧,很晚了 源码是鹅厂大佬写的,佩服佩服~ 一、RapidJSON介绍及资料 RapidJSON是腾讯开源的C JSON解析及生成器,只有头文件的C库,跨平台。 RapidJSON 是一个 C 的 JSON 解析器及生成器…

rapidjson安装使用

前言:仅个人小记。 正文 由于 rapidjson是 “header-only”的C库,故而直接将头文件目录拷贝到系统目录或者指定目录即可完成安装。 参考材料: rapidjson代码仓库 https://github.com/Tencent/rapidjson rapidjson 文档 https://rapidjson.…

rapidjson创建json字符串

参考链接&#xff1a;http://rapidjson.org/zh-cn/ #include "json/stringbuffer.h" #include "json/prettywriter.h"void getJson() {rapidjson::StringBuffer buf;rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(buf);writer.StartObj…

RapidJson踩坑记录

用于记录RapidJson使用中的坑位&#xff0c;持续更新。关于rapidjson的详细说明&#xff0c;可以参加参考文档&#xff1a;http://rapidjson.org/zh-cn/md_doc_tutorial_8zh-cn.html#CreateString 1、添加字符串元素 现象&#xff1a; #include "rapidjson/document.h&…

c++ rapidjson

下面rapid json代码已在vs2017验证&#xff0c;特别地&#xff0c;用rapid json可以解析中文字符串&#xff0c;不会中文乱码。 第一步&#xff1a;去https://github.com/Tencent/rapidjson/上下载头文件&#xff0c;只需要其中的include文件夹。也可以在csdn上下载&#xff1…

RapidJSON简介及使用

RapidJSON是腾讯开源的一个高效的C JSON解析器及生成器&#xff0c;它是只有头文件的C库。RapidJSON是跨平台的&#xff0c;支持Windows, Linux, Mac OS X及iOS, Android。它的源码在GitHub - Tencent/rapidjson: A fast JSON parser/generator for C with both SAX/DOM style …

JSON--rapidjson介绍

JSON--rapidjson 1 RapidJSON简介2 C/C Json库对比一致性解析时间解析内存Stringify Time&#xff08;string 2 json&#xff09;Prettify Time&#xff08;美化格式时间&#xff09;代码大小 3 几个重点库介绍rapidjsonnlohmann-jsonjsoncppcjson 参考 1 RapidJSON简介 Rapid…

RapidJSON入门:手把手教入门实例介绍

RapidJSON优点 跨平台 编译器&#xff1a;Visual Studio、gcc、clang 等 架构&#xff1a;x86、x64、ARM 等 操作系统&#xff1a;Windows、Mac OS X、Linux、iOS、Android 等 容易安装 只有头文件的库。只需把头文件复制至你的项目中。 独立、最小依赖 不需依赖 STL、BOOST …

oracle listagg如何去重

listagg去重 去重思路&#xff1a;利用listagg会忽略null值的特点 按ENTITY_GROUP_RRN 分组&#xff0c;用 listagg 分别合并 EQPT_ID 与 STATION_ID &#xff0c;同时要求去重 表 T_TEST 数据如下&#xff1a; EQPT_IDENTITY_GROUP_RRNSTATION_IDTOOL-00110493721JITAI-1TO…

mysql listagg within_Oracle的 listagg() WITHIN GROUP ()函数使用

1.使用条件查询 查询部门为20的员工列表 -- 查询部门为20的员工列表 SELECT t.DEPTNO,t.ENAME FROM SCOTT.EMP t where t.DEPTNO 20 ; 效果&#xff1a; 2.使用 listagg() WITHIN GROUP () 将多行合并成一行 SELECT T .DEPTNO, listagg (T .ENAME, ,) WITHIN GROUP (ORDER …

listagg结果去重

最近在一个项目中用到了listagg方法&#xff0c;但是在组合结果中出现有重复的情况。默认的结果如下 于是我就写了一个方法对listagg的结果去重&#xff0c;也可以对该格式的字符串去重&#xff0c;方法如下 create or replace function listaggpure(targetStr varchar2,seper…

Oracle函数之listagg函数

语法 有点难以看懂&#xff0c;个人理解listagg是list aggregate的缩写&#xff08;错了勿喷&#xff09;&#xff0c;也就是列表总计&#xff0c;聚合的意思。 官方文档解释为&#xff1a; LISTAGG orders data within each group specified in the ORDER BY clause and then …

listagg()行转列函数

--基础数据 DROP TABLE "ZYH_TEST"; CREATE TABLE "ZYH_TEST" ("ID" NUMBER(19) NOT NULL ,"NAME" VARCHAR2(255 BYTE) ,"CREATETIME" DATE ,"SCORE" NUMBER ,"CLASSID" VARCHAR2(255 BYTE) )INSERT I…

oracle listagg支持,PostgreSQL行列转换(兼容oracle listagg)

oracle11g开始支持的listagg函数替代了wmconcat来实现行列转换的功能。 listagg函数的用法: oracle行列转换例子: —建表https://www.cndba.cn/foucus/article/3929https://www.cndba.cn/foucus/article/3929 SQL> create table b (id number,name varchar2(20)); Table c…