HTTP 400 错误是啥原因

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP 400 错误是啥原因相关的知识,希望对你有一定的参考价值。

HTTP 400 错误是什么原因

HTTP 400 Bad Request  表示语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求;请求参数有误。

解决方案:

1)对照字段名称,类型保证一致性;

2)使用stringify将前端传递的对象转化为字符串 ,data: JSON.stringify(param)。

扩展资料:

当用户试图通过HTTP或FTP协议访问一台运行主机上的内容时,Web服务器返回一个表示该请求的状态的数字代码。

该状态代码记录在服务器日志中,同时也可能在 Web 浏览器或 FTP客户端显示。也就是我们打开页面发生错误时浏览器显示的错误信息代码。状态代码可以指明具体请求是否已成功,还可以揭示请求失败的确切原因。

HTTP400系列错误列表:

1、401 Unauthorized

当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。

如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。参见RFC 2617。

2、402 Payment Required

该状态码是为了将来可能的需求而预留的。

3、403 Forbidden

服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。如果这不是一个 HEAD 请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。当然服务器也可以返回一个404响应,假如它不希望让客户端获得任何信息。

4、404 Not Found

请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。

404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。出现这个错误的最有可能的原因是服务器端没有这个页面。

5、405 Method Not Allowed

请求行中指定的请求方法不能被用于请求相应的资源。该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表。鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。

参考资料:百度百科——HTTP状态码

参考技术A

HTTP 错误 400
400 请求出错
由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。

原因:

1、前端提交数据的字段名称或者是字段类型和后台的实体类不一致,导致无法封装;

2、前端提交的到后台的数据应该是json字符串类型,而前端没有将对象转化为字符串类型;

扩展资料:

http错误是针对浏览器无法连接到服务器而增加出来的错误提示。引导并告诉浏览者该页是哪里出了问题。

常见错误:

400 Bad request(错误请求)

401.1 Logon failed(登录失败)

401.2 Logon failed due to server configuration(由于服务器配置,登录失败)

401.3 Unauthorized due to ACL on resource(由于资源上的 ACL,未授权)

401.4 Authorization failed by filter(由于筛选器,授权失败)

401.5 Authorization failed by ISAPI/CGI application (由于 ISAPI/CGI 应用程序,授权失败)

403.1 Execute access forbidden(执行访问被禁止)

403.2 Read access forbidden(读取访问被禁止)

403.3 Write access forbidden(写入访问被禁止)

403.4 SSL required(要求 SSL )

403.5 SSL 128 required(要求 SSL 128)

403.6 IP address rejected (IP 地址被拒绝)

403.7 Client certificate required(要求客户证书)

403.8 Site access denied(站点访问被拒绝)

403.9 Too many users(用户太多)

403.10 Invalid configuration(无效的配置)

403.11 Password change(密码更改)

403.12 Mapper denied access(映射程序拒绝访问)

403.13 Client certificate revoked(客户证书被取消)

403.14 Directory listing denied(目录列表被拒绝)

403.15 Client Access Licenses exceeded(超出客户访问许可证)

403.16 Client certificate untrusted or invalid(客户证书不受信任或无效)

403.17 Client certificate has expired or is not yet valid(客户证书已过期或无效)

404 Not found(没有找到)

404.1 Site not found(站点没有找到)

405 Method not allowed(不允许使用该方法)

406 Not acceptable(不接受)

407 Proxy authentication required(要求代理身份验证)

412 Precondition Failed(前提条件不正确)

414 Request-URL too long(请求的 URL 太长)

500 Internal server error(内部服务器错误)

500.12 Application restarting(应用程序重新启动)

500.13 Server too busy(服务器太忙)

500.15 Requests for Global.asa not allowed(不允许请求 Global.asa)

500-100.asp ASP 错误

501 Not implemented(没有实施)

502 Bad gateway(错误网关)

参考链接:百度百科-HTTP错误

参考技术B 400含义400是一种400是HTTP状态码,400 Bad Request。是在打开网页时浏览器返回到客户端的一种状态码。400页面代表的意思400页面是当用户在打开网页时,返回给用户界面带有400提示符的页面。其含义是你访问的页面域名不存在或者请求错误。主要有两种形式:1、bad request意思是“错误的请求";2、invalid hostname意思是"不存在的域名”。通常只用Windows主机才会出现这样的字样,如果是Linux主机,会显示不同的错误提示。bad request invalid hostname出现这个错误的原因是某个域名绑定到了某个主机上,而该主机却没有绑定这个域名,所以IIS就返回了这个提示信息。遇到这个问题怎么办呢?解决方法首先就是Ping一下域名,看看是否解析到空间所在的IP,如果是,再去空间的管理面板看有没有绑定你的域名了,如果有,就可以肯定是空间提供商的问题了,解决这个问题就只能找空间提供商绑定你的域名了,如果自己有这个权限自己绑定域名就可以解决问题。 参考技术C HTTP常见错误

HTTP 错误 400
400 请求出错
由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。

HTTP 错误 401
401.1 未授权:登录失败
此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。
请与 Web 服务器的管理员联系,以确认您是否具有访问所请求资源的权限。
401.2 未授权:服务器的配置导致登录失败
此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。此错误通常由未发送正确的 WWW 验证表头字段所致。
请与 Web 服务器的管理员联系,以确认您是否具有访问所请求资源的权限。
401.3 未授权:由于资源中的 ACL 而未授权
此错误表明客户所传输的证书没有对服务器中特定资源的访问权限。此资源可能是客户机中的地址行所列出的网页或文件,也可能是处理客户机中的地址行所列出的文件所需服务器上的其他文件。
请记录试图访问的完整地址,并与 Web 服务器的管理员联系以确认您是否具有访问所请求资源的权限。
401.4 未授权:授权服务被筛选程序拒绝
此错误表明 Web 服务器已经安装了筛选程序,用以验证连接到服务器的用户。此筛选程序拒绝连接到此服务器的真品证书的访问。
请记录试图访问的完整地址,并与 Web 服务器的管理员联系以确认您是否具有访问所请求资源的权限。
401.5 未授权:ISAPI/CGI 应用程序的授权失败
此错误表明试图使用的 Web服务器中的地址已经安装了 ISAPI 或 CGI程序,在继续之前用以验证用户的证书。此程序拒绝用来连接到服务器的真品证书的访问。
请记录试图访问的完整地址,并与 Web服务器的管理员联系以确认您是否具有访问所请求资源的权限

HTTP 错误 403
403.1 禁止:禁止执行访问
如果从并不允许执行程序的目录中执行 CGI、ISAPI或其他执行程序就可能引起此错误。
如果问题依然存在,请与 Web 服务器的管理员联系。
403.2 禁止:禁止读取访问
如果没有可用的默认网页或未启用此目录的目录浏览,或者试图显示驻留在只标记为执行或脚本权限的目录中的html 页时就会导致此错误。
如果问题依然存在,请与 Web 服务器的管理员联系。
403.3 禁止:禁止写访问
如果试图上载或修改不允许写访问的目录中的文件,就会导致此问题。
如果问题依然存在,请与 Web服务器的管理员联系。
403.4 禁止:需要 SSL
此错误表明试图访问的网页受安全套接字层(SSL)的保护。要查看,必须在试图访问的地址前输入https:// 以启用 SSL。
如果问题依然存在,请与 Web服务器的管理员联系。
403.5 禁止:需要 SSL 128
此错误消息表明您试图访问的资源受 128位的安全套接字层(SSL)保护。要查看此资源,需要有支持此SSL 层的浏览器。
请确认浏览器是否支持 128 位 SSL安全性。如果支持,就与 Web服务器的管理员联系,并报告问题。
403.6 禁止:拒绝 IP 地址
如果服务器含有不允许访问此站点的 IP地址列表,并且您正使用的 IP地址在此列表中,就会导致此问题。
如果问题依然存在,请与 Web服务器的管理员联系。
403.7 禁止:需要用户证书
当试图访问的资源要求浏览器具有服务器可识别的用户安全套接字层(SSL)证书时就会导致此问题。可用来验证您是否为此资源的合法用户。
请与 Web服务器的管理员联系以获取有效的用户证书。
403.8 禁止:禁止站点访问
如果 Web服务器不为请求提供服务,或您没有连接到此站点的权限时,就会导致此问题。
请与 Web 服务器的管理员联系。
403.9 禁止访问:所连接的用户太多
如果 Web太忙并且由于流量过大而无法处理您的请求时就会导致此问题。请稍后再次连接。
如果问题依然存在,请与 Web 服务器的管理员联系。
403.10 禁止访问:配置无效
此时 Web 服务器的配置存在问题。
如果问题依然存在,请与 Web服务器的管理员联系。
403.11 禁止访问:密码已更改
在身份验证的过程中如果用户输入错误的密码,就会导致此错误。请刷新网页并重试。
如果问题依然存在,请与 Web服务器的管理员联系。
403.12 禁止访问:映射程序拒绝访问
拒绝用户证书试图访问此 Web 站点。
请与站点管理员联系以建立用户证书权限。如果必要,也可以更改用户证书并重试。

HTTP 错误 404
404 找不到
Web 服务器找不到您所请求的文件或脚本。请检查URL 以确保路径正确。
如果问题依然存在,请与服务器的管理员联系。

HTTP 错误 405
405 不允许此方法
对于请求所标识的资源,不允许使用请求行中所指定的方法。请确保为所请求的资源设置了正确的 MIME 类型。
如果问题依然存在,请与服务器的管理员联系。

HTTP 错误 406
406 不可接受
根据此请求中所发送的“接受”标题,此请求所标识的资源只能生成内容特征为“不可接受”的响应实体。
如果问题依然存在,请与服务器的管理员联系。

HTTP 错误 407
407 需要代理身份验证
在可为此请求提供服务之前,您必须验证此代理服务器。请登录到代理服务器,然后重试。
如果问题依然存在,请与 Web 服务器的管理员联系。

HTTP 错误 412
412 前提条件失败
在服务器上测试前提条件时,部分请求标题字段中所给定的前提条件估计为FALSE。客户机将前提条件放置在当前资源 metainformation(标题字段数据)中,以防止所请求的方法被误用到其他资源。
如果问题依然存在,请与 Web 服务器的管理员联系。

HTTP 错误 414
414 Request-URI 太长
Request-URL太长,服务器拒绝服务此请求。仅在下列条件下才有可能发生此条件:
客户机错误地将 POST 请求转换为具有较长的查询信息的 GET 请求。
客户机遇到了重定向问题(例如,指向自身的后缀的重定向前缀)。
服务器正遭受试图利用某些服务器(将固定长度的缓冲区用于读取或执行 Request-URI)中的安全性漏洞的客户干扰。
如果问题依然存在,请与 Web 服务器的管理员联系。

HTTP 错误 500
500 服务器的内部错误
Web 服务器不能执行此请求。请稍后重试此请求。
如果问题依然存在,请与 Web服务器的管理员联系。

HTTP 错误 501
501 未实现
Web 服务器不支持实现此请求所需的功能。请检查URL 中的错误,如果问题依然存在,请与 Web服务器的管理员联系。

HTTP 错误 502
502 网关出错
当用作网关或代理时,服务器将从试图实现此请求时所访问的upstream 服务器中接收无效的响应。
如果问题依然存在,请与 Web服务器的管理员联系。本回答被提问者和网友采纳
参考技术D 相信很多朋友都使用过http,不管是因为业务需求还是个人需求,在使用代理IP的过程中总会碰到一些问题,比如连接不上,网速变慢,我们来看看出现这些问题的原因有哪些:
1、服务器所处网络速度不佳。之所以将这个放在第一,是因为多数朋友遇到使用代理IP访问慢的时候,立即想到代理IP服务器出问题了,找供应商解决;
2、IP服务器性能差。如果代理IP长期使用速度非常缓慢,就有可能是服务器性能的原因,承载不了大量用户访问带来的压力;
3、目标站点速度不稳定。代理IP速度快,目标站点慢,也同样影响;
4、用户使用代理IP的程序调试存在问题。
5、主要观察http返回的状态码,统计错误信息和http状态码,将成功率和失败率分别统计一下,看看比例情况。来分析是否是网站,海量定制代理,还是程序软件的问题。
6、检查目标网站是否升级,建议是否被限制了爬虫
使用代理IP报错的原因基本以上,有着海量全球高匿IP 网络资源的ipidea真实百兆带宽,分布240+国家地区,保证IP的纯净度和稳定性。

是啥导致 HttpListener HTTP 503 错误?

【中文标题】是啥导致 HttpListener HTTP 503 错误?【英文标题】:What causes a HttpListener HTTP 503 error?是什么导致 HttpListener HTTP 503 错误? 【发布时间】:2011-12-29 20:30:27 【问题描述】:

所以,我们有一个大型程序,它使用 HttpListener 来实现一个小的远程管理功能。由于我不明白的原因,有些人遇到了 503 错误的问题。

由于我们没有提供错误,因此框架中发生了一些事情。现在,我的问题是,框架内部是什么提供了这个错误?是前缀设置不正确还是怎么的?

我们目前将前缀设置为“http://*:8080/”。

建议?

【问题讨论】:

它是否有时会工作而不会出现错误 503? 我不确定。这是一个有麻烦的客户。如果它是/不是恒定的,有什么建议吗? 如果不是恒定的,我听起来不像是权限问题... 【参考方案1】:

在尝试使用 netsh http 命令为 HttpListener 设置权限时,我在 Windows 7 上遇到了同样的错误。 在目标系统上运行命令(适用于 Windows 7):

netsh http show urlacl    

并检查您的网址“http://+:8080/”是否已出现在保留网址列表中。尝试从列表中删除(使用“netsh http delete urlacl”。类似主题here。

【讨论】:

很好的答案,我遇到了同样的问题:我的一个测试使用了 HttpSelfHostConfiguration 类,该类需要保留它使用的 url(通过 netsh),而另一个使用 HttpListener 的测试在我抛出 HTTP 503 错误时想要访问它,因为该 url 是在第一次测试之前保留的。 我在尝试访问在自定义端口上运行的 HttpListener 时遇到了同样的问题(503 错误)。我在运行show urlacl 后找到了该URL,并使用delete urlacl [custom URL:port] 将其删除。之后它起作用了。谢谢。 它可以工作,但是为什么在关闭我使用该 URL 的应用程序后,即使在重新启动 Windows 后,该 URL 仍然保留? 因为保留的 URL 列表是系统范围的,不依赖于任何进程的运行状态。 是的,我这样做:【netsh http add urlacl url=http://*:8080/ user=everyone listen=yes】和【netsh http delete urlacl url=http://+:8080/】,它对我有用!【参考方案2】:

这个问题我有点晚了。但是我只是在以下情况下遇到了HTTP 503状态码:

例如,如果使用 netsh http add urlacl 注册了“http://+:8080/MyService/”“http://+:8080/MyService/SOAP”,我们会收到针对不明确 URL 的请求的 503。对“http://myservice:8080/MyService/somethingelse”的请求工作正常,而对“http://myservice:8080/MyService/SOAP/”的请求失败,状态为 503。

为了完整起见,添加了这个。我花了一段时间才弄清楚。

【讨论】:

【参考方案3】:

确保您的 HttpListenerurlacl 匹配。

以 (C#) 方式启动您的侦听器:

using System;
using System.Net;
using System.ServiceModel;

namespace Example

    class MyApi
    
        private const int _apiPortNumber = 8080;
        public const string BasePath = "/myApi/";
        public static EndpointAddress MyEndPoint => new EndpointAddress(
            new UriBuilder(
                    Uri.UriSchemeHttp,
                    "localhost",//only allow connections on localhost (no remote access)
                    _apiPortNumber,
                    BasePath)
                .Uri);

        public MyApi()
        
            var httpListener = new System.Net.HttpListener();
            httpListener.Prefixes.Add(MyEndPoint.Uri.ToString());
            httpListener.Start();
        
    

urlacl 的作用是:

netsh http add urlacl url=http://127.0.0.1:8080/myApi/ user=MyServiceUserName

但是,如下配置您的 urlacl 将不起作用:

http add urlacl url=http://+:8080/myApi/ user=MyServiceUserName

【讨论】:

以上是关于HTTP 400 错误是啥原因的主要内容,如果未能解决你的问题,请参考以下文章

HTTP 400 Bad request 原因

错误代码:400指的是啥错误?

HTTP 500 错误是啥意思?

http请求400错误

nginx报如下错误,不能启动是啥原因

nginx HTTP500类型错误码出现的原因以及分析