46

有两个应用服务器和一个交换机。当我使用应用程序服务器 ip 访问应用程序时,它工作正常。但是,如果我在我的 url 中使用 switch ip 错误请求错误仅针对 firefox 和 chrome 仅针对少数链接抛出。

4

14 回答 14

48

是 ibm 对此问题的详细解释和解决方案。

问题(摘要)

对 HTTP 服务器的请求失败,响应代码为 400。

症状

来自浏览器的响应可能如下所示:

错误请求 您的浏览器发送了此服务器无法理解的请求。请求头字段的大小超过服务器限制。

HTTP Server Error.log 显示以下消息:“请求失败:读取标头错误”

原因

这通常是由于 Cookie 非常大,因此请求标头字段超出了为 Web Server 设置的限制。

诊断问题

为了帮助诊断问题,您可以在 httpd.conf 中的 LogFormat 指令中添加以下内容: error-note: %{error-notes}n

解决问题

对于服务器端:增加 httpd.conf 中指令 LimitRequestFieldSize 的值:LimitRequestFieldSize 12288 或 16384 对于如何设置 LimitRequestFieldSize,请检查增加 Apache 中 LimitRequestFieldSize 的值

对于客户端:清除 Web 浏览器的缓存应该没问题。

于 2012-12-16T15:21:40.827 回答
28

如果您使用 2.2.15-60 以上版本的 Apache httpd Web 服务器,那么也可能是因为_主机名中的下划线。

https://ma.ttias.be/apache-httpd-2-2-15-60-underscores-hostnames-now-blocked/

于 2018-07-28T17:38:15.727 回答
7

我刚刚从浏览器中删除了我存储的 cookie、站点数据和缓存……它起作用了。我用的是火狐...

于 2020-02-05T04:08:39.560 回答
3

确保对 url 中的所有查询参数进行 url 编码。

在我的情况下,我的 url 中有一个空格“”,我正在使用 curl 进行 API 调用,而我的 api 服务器给出了这个错误。

表示以下网址 http://somedomain.com?key=some value with space

应该 http://somedomain.com/?key=some%20value%20with%20space

于 2020-03-04T07:35:36.147 回答
2

我参加聚会有点晚了,但是在使用 openidc auth 模块时遇到了这个问题。

我最终注意到 cookie 没有被正确清除,并且我至少有 10 个 mod_auth_openidc_state_... cookie,只要我提出请求,所有这些都会由我的浏览器发送。

如果这听起来很熟悉,请仔细检查您的 cookie!

于 2019-11-11T15:29:56.973 回答
2

我正在使用特殊字符测试我的应用程序并观察到相同的错误。经过一番研究,事实证明%符号是原因。我不得不将其修改为编码表示%25。现在一切都很好,感谢下面的帖子

https://superuser.com/questions/759959/why-does-the-percent-sign-in-a-url-cause-an-http-400-bad-request-error

于 2018-10-09T14:59:44.317 回答
1

就我而言:

在标题中

内容类型spacespace

或者

内容类型tab

有两个空格或制表符

当我删除它然后它工作。

于 2020-06-18T06:44:20.340 回答
1

就我而言,这是一个与 cookie 相关的问题,我有许多价值非常大的 cookie,这就是导致问题的原因。

您可以在stackoverflow.com上复制此问题,只需打开控制台并输入以下内容:

[ ...Array(5) ].forEach((i, idx) => {
    document.cookie = `stackoverflow_cookie${idx}=${'a'.repeat(4000)}`;
});

那是什么?

我正在创建 5 个长度或值为 4000 字节的字符串的 cookie;然后重新加载页面,你会看到同样的问题。

我在google.com上尝试过,您会收到错误消息,但它们会自动为您清除 cookie,这是重新开始的一个不错的后备方案。

于 2020-08-12T00:19:18.170 回答
0

如果您在 WordPress 网站上收到此错误,请检查以下解决方案。

  1. 损坏的浏览器缓存和 Cookie:删除您的 Cookie 并清除缓存
  2. 重启你的服务器
于 2021-02-09T05:59:54.727 回答
0

对于 GET 请求,请确保传递的参数是 url 编码的。如果您使用的是 php,则可以使用urlencode函数

于 2021-03-24T03:48:32.870 回答
0

检查您的数据类型是否正确。

例如:如果您发送文件,您需要考虑发送文件的完整对象

于 2022-01-20T09:33:57.450 回答
0

在我的 magento2 网站中,单击产品时显示完全相同的错误,

我的解决方案是去编辑搜索引擎优化的值 - 这个产品的 URL 键,

确保 URL Key 中只有字母、数字和 -,例如 100-washed-cotton-duvet-cover-set,删除所有其他特殊字符,例如 % 。

于 2020-05-21T13:04:24.663 回答
0

当我Bad Request, Your browser sent a request that this server could not understand 尝试使用curl.
我通过scp将文件从源机器复制到目标机器来解决它。

于 2020-11-01T18:37:17.243 回答
0

如果您遇到同样的问题并且其他解决方案均无效,请再次检查 url。

在我的情况下,它最终是一个空格,当它被添加到 Cronjob 时,也有人不小心复制了一个空格。

于 2021-08-19T12:06:33.470 回答