首页 > 网站推广 > 经验心得

http 402错误是什么 http 402简介

发布时间:2017-1-22 11:05

http 402错误是什么?402错误较为少见,一般不轻易出现,下面小编就来告诉大家402错误是什么吧。

HTTP 402错误是HTTP状态码的一种,表示“要求付费”;

所求的服务需要付费才能执行时就会返回此错误。

401是HTTP状态码的一种,属于“请示错误”,表示请求可能出错,已妨碍了服务器对请求的处理。具体的401错误是指:未授权,请求要求进行身份验证。登录后,服务器可能会返回对页面的此响应。

下面为大家详细介绍401错误是什么,以及401错误的解决办法。

401错误是什么:

您的Web服务器认为,客户端(例如您的浏览器)发送的 HTTP 数据流是正确的,但进入网址 (URL) 资源 , 需要用户身份验证 , 而相关信息 尚未被提供, 已提供但没有通过授权测试。这就是通常所知的“ HTTP 基本验证 ”。 

需客户端提供的验证请求在 HTTP 协议中被定义为 WWW ? 验证标头字段 (WWW-Authenticate header field) 。

一般来说该错误消息表明您首先需要登录(输入有效的用户名和密码)。 如果你刚刚输入这些信息,立刻就看到一个 401 错误,就意味着,无论出于何种原因您的用户名和密码其中之一或两者都无效(输入有误,用户名暂时停用,等)。

任何客户端(例如您的浏览器),都需要通过以下循环:

从您站点的 IP 名称 ( 即您站点的网址-URL, 不带起始的 ‘http://') 获得一个 IP 地址。这个对应关系 ( 即由 IP 名称向 IP 地址转换的对应关系 ) 由域名服务器 (DNS) 提供。

打开一个 IP 套接字 (socket) 连接到该 IP 地址。

通过该套接字写 HTTP 数据流。

从您的Web服务器接受响应的 HTTP 数据流。该数据流包括状态编码, 其值取决于 HTTP 协议 。 解析该数据流得到 状态编码和其他有用信息。

该错误在以上所述的最后一步生成,即当客户端收到 HTTP 状态编码并识别其为 ‘401‘ 时

401错误解决办法

错误号401.1

症状:HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。

分析:由于用户匿名访问使用的账号(默认是IUSR_机器名)被禁用,或者没有权限访问计算机,将造成用户无法访问。

解决方案:

(1)查看IIS管理器中站点安全设置的匿名帐户是否被禁用,如果是,请尝试用以下办法启用:控制面板->管理工具->计算机管理->本地用户和组,将IUSR_机器名账号启用。如果还没有解决,请继续下一步。

(2)查看本地安全策略中,IIS管理器中站点的默认匿名访问帐号或者其所属的组是否有通过网络访问服务器的权限,如果没有尝试用以下步骤赋予权限:开始->程序->管理工具->本地安全策略->安全策略->本地策略->用户权限分配,双击“从网络访问此计算机”,添加IIS默认用户或者其所属的组。

注意:一般自定义 IIS默认匿名访问帐号都属于组,为了安全,没有特殊需要,请遵循此规则。

错误号401.2

症状:HTTP 错误 401.2 - 未经授权:访问由于服务器配置被拒绝。

原因:关闭了匿名身份验证

解决方案:运行inetmgr,打开站点属性->目录安全性->身份验证和访问控制->选中“启用匿名访问”,输入用户名,或者点击“浏览”选择合法的用户,并两次输入密码后确定。

错误号:401.3

症状:HTTP 错误 401.3 - 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。

原因:IIS匿名用户一般属于Guests组,而我们一般把存放网站的硬盘的权限只分配给administrators组,这时候按照继承原则,网站文件夹也只有administrators组的成员才能访问,导致IIS匿名用户访问该文件的NTFS权限不足,从而导致页面无法访问。

解决方案:给IIS匿名用户访问网站文件夹的权限,方法:进入该文件夹的安全选项,添加IIS匿名用户,并赋予相应权限,一般是读、写。

每当遇到http错误代码为400,代表客户端发起的请求不符合服务器对请求的某些限制,或者请求本身存在一定的错误,那么HTTP 400错误怎么解决呢?请看下文介绍。

目前400错误经常出现在用户认证阶段,当一个用户从属于过多的域时,在Kerberos认证阶段会将域信息发送给服务器,从而导致请求字段长度超过服务器设置的上限。

问题重现

更改注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\http\Parameters

MaxFieldLength = 10 (hex)

通过以下命令重起系统http服务 (需要管理员权限)

Net stop http

Net start http

通过以下命令重起iis服务

IISRESET

通过浏览器访问服务器网页

调试方法

400错误产生自http级别,服务器端http.sys检测到任何与其配置不符合的请求会直接回复400错误给客户端,同时在C:\Windows\System32\LogFiles\HTTPERR\httperr.log文件中记录日志表明失败原因。

Http error log

#Software:Microsoft HTTP API 2.0

#Version:1.0

#Date:2012-09-05 05:01:22

#Fields:date time c-ip c-port s-ip s-port cs-version cs-method cs-uri sc-statuss-siteid s-reason s-queuename

2012-09-0505:01:22 ::1%0 20567 ::1%0 80 HTTP/1.1 GET / 400 - FieldLength

也可以通过IE Developer Tool来追踪返回代码。

打开IE, 按F12打开Developer Tool

在network选项卡上点击StartCapture按钮

浏览网页,查看返回码

解决方案

方案一

减少请求中发送的字段长度,使其符合服务器规定。如果该问题是因为该用户加入了过多域组,那就要从一些组中退出来以减少请求长度。

方案二

更改服务器设置,在注册表中更改MaxFieldLength和MaxRequestBytes设置的大小。

具体应该设为多大呢?

可以根据这个链接提供的方式计算token的大小http://support.microsoft.com/kb/327825

然后把MaxFieldLength和MaxRequestBytes的大小设置为token大小的4/3。

如果不想计算,可以安装一个fiddler在客户端,清IE cache,然后发送一个请求然后查看统计信息。一共发送了多少字节可以通过以下方式来查看。

方案三

改用NTLM取代Kerberos认证方式,这样域组信息不会被发送,但是这要根据实际环境需求而定,如果需要用到Kerberos delegation功能,肯定不能改为NTLM。另外Kerberos相对NTLM是一种更为安全的认证方式,所以该方案在选择的时候要更加慎重。

相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。

HTTP 408错误出现原因:

HTTP 408错误是HTTP协议状态码的一种,表示请求超时。服务器等候请求的时间超过了相应的时间限制,会返回此错误代码。

HTTP 408错误解决办法:

如果您持续看到http 408错误,首先要考虑的是Web服务器的工作量,特别是在产生http 408错误的时间段内。

如果工作量很轻,那么你还需要考虑客户端系统的工作量。 如果socket连接两端的计算机系统的似乎都是正常运行,那么暂时的互联网流量激增可能是出错的原因。

需要整合考虑具体的因素及所处的环境因素。

标签:[!--infotagslink--]

您可能感兴趣的文章: