您的位置:首页 > 理论基础 > 计算机网络

整理了一些编程过程中需要了解HTTP协议,希望有用

2010-09-29 11:51 429 查看
本文参照了http://www.cnblogs.com/cai9911/archive/2009/11/09/1598891.html 《HTTP错误代码详细介绍》
http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx 《HTTP协议详解》

三、HTTP协议详解之响应篇

在接收和解释请求消息后,服务器返回一个HTTP响应消息。

HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文

1、状态行格式如下:

HTTP-Version Status-Code Reason-Phrase CRLF

其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。

状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:

1xx:指示信息--表示请求已接收,继续处理

2xx:成功--表示请求已被成功接收、理解、接受

3xx:重定向--要完成请求必须进行更进一步的操作

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务器端错误--服务器未能实现合法的请求

常见状态代码、状态描述、说明:

200 OK //客户端请求成功

400 Bad Request //客户端请求有语法错误,不能被服务器所理解

401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报 //头域一起使用

403 Forbidden //服务器收到请求,但是拒绝提供服务

404 Not Found //请求资源不存在,eg:输入了错误的URL

500 Internal Server Error //服务器发生不可预期的错误

503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后, //可能恢复正常

eg:HTTP/1.1 200 OK (CRLF)

1xx - 信息提示

这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。

HTTP100 - 继续。

HTTP101 - 切换协议。

2xx - 成功

200 - 确定。客户端请求已成功。

201 - 已创建。

202 - 已接受。

203 - 非权威性信息。

204 - 无内容。

205 - 重置内容。

206 - 部分内容。

3xx - 重定向

客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。

302 - 对象已移动。

304 - 未修改。

307 - 临时重定向。

4xx - 客户端错误

瞬态否定的完成答复

该命令不成功,但错误是暂时的。如果客户端重试命令,可能会执行成功。

客户端发生错误,客户端请求不存在的页面,客户端未提供有效的身份验证信息之类。

HTTP 400 - 请求无效

HTTP 401.1 - 未授权:登录失败

登录失败。 登录尝试不成功,可能因为用户名或密码无效。

HTTP 401.2 - 未授权:服务器配置问题导致登录失败

HTTP 401.3 - 由于ACL对资源限制而未获得授权 禁止访问资源

这表示存在 NTFS 权限问题。即使您对试图访问的文件具备相应 的权限,也可能发生此错误。

HTTP 401.4 - 未授权:授权被筛选器拒绝

HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败

401.7 – 访问被 Web 服务器上的 URL 授权策略拒绝。这个错误代码为 IIS 6.0 所专用

HTTP 403 - 禁止访问

HTTP 403 - 对 Internet 服务管理器 (HTML) 的访问仅限于 Localhost

HTTP 403.1 禁止访问:禁止可执行访问

下面是导致此错误信息的两个常见原因: 您没有足够的执行许可。例如,如果试图访问的 ASP 页所在的目录权限设为“无”,或者,试图执行的 CGI 脚本所在的目录权限为“只允许脚本”,将出现此错误信息。若要修改执行权限,请在 Microsoft 管理控制台 (MMC) 中右击目录,然后依次单击属性和目录选项卡,确保为试图访问的内容设置适当的执行权限。

您没有将试图执行的文件类型的脚本映射设置为识别所使用的谓词(例如,GET 或 POST)。若要验证这一点,请在 MMC 中右击目录,依次单击属性、目录选项卡和配置,然后验证相应文件类型的脚本映射是否设置为允许所使用的谓词

HTTP 403.2 - 禁止访问:禁止读访问

验证是否已将 IIS 设置为允许对目录进行读访问。另外,如果您正在使用默认文件,请验证该文件是否存在。

HTTP 403.3 - 禁止访问:禁止写访问

验证 IIS 权限和 NTFS 权限是否已设置以便向该目录授予写访问权。

HTTP 403.4 - 禁止访问:要求 SSL

禁用要求安全通道选项,或使用 HTTPS 代替 HTTP 来访问该页面

HTTP 403.5 - 禁止访问:要求 SSL 128

禁用要求 128 位加密选项,或使用支持 128 位加密的浏览器以查看该页面。如果没有安装证书的 Web 站点出现此错误

HTTP 403.6 - 禁止访问:IP 地址被拒绝

您已把您的服务器配置为拒绝访问您目前的 IP 地址。

HTTP 403.7 - 禁止访问:要求客户证书

您已把您的服务器配置为要求客户端身份验证证书,但您未安装有效的客户端证书。

HTTP 403.8 - 禁止访问:禁止站点访问

您已为您用来访问服务器的域设置了域名限制。

HTTP 403.9 - 禁止访问:连接的用户过多

与该服务器连接的用户数量超过了您设置的连接限制。

HTTP 403.10 - 禁止访问:配置无效

HTTP 403.11 - 禁止访问:密码更改

HTTP 403.12 - 禁止访问:映射器拒绝访问

您要访问的页面要求提供客户端证书,但映射到您的客户端证书的用户 ID 已被拒绝访问该文件。

HTTP 403.13 - 禁止访问:客户证书已被吊销

HTTP 403.15 - 禁止访问:客户访问许可过多

HTTP 403.16 - 禁止访问:客户证书不可信或者无效

HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效

403.18 - 在当前的应用程序池中不能执行所请求的 URL。这个错误代码为 IIS 6.0 所专用。

403.19 - 不能为这个应用程序池中的客户端执行 CGI。这个错误代码为 IIS 6.0 所专用。

403.20 - Passport 登录失败。这个错误代码为 IIS 6.0 所专用。

HTTP404 - 未找到。

发生此错误的原因是您试图访问的文件已被移走或删除。如果在安装 URLScan 工具之后,试图访问带有有限扩展名的文件,也会发生此错误。这种情况下,该请求的日志文件项中将出现“Rejected by URLScan”的字样。

HTTP 404.0 -(无) – 没有找到文件或目录

HTTP 404.1 - 无法在所请求的端口上访问 Web 站点。

HTTP404.2 - Web 服务扩展锁定策略阻止本请求。

HTTP404.3 - MIME 映射策略阻止本请求。

HTTP 405 -

资源被禁止用来访问本页面的 HTTP 谓词不被允许(方法不被允许)

HTTP 406 - 无法接受 客户端浏览器不接受所请求页面的 MIME 类型

HTTP 407 - 要求代理身份验证

HTTP412 - 前提条件失败。

HTTP 413 – 请求实体太大。

HTTP 414 - 请求 URI 太长。

HTTP 415 – 不支持的媒体类型。

HTTP 416 – 所请求的范围无法满足。

HTTP 417 – 执行失败。

HTTP421 服务不可用,正在关闭控制连接。如果服务确定它必须关闭,将向任何命令发送这一应答。

HTTP 423 – 锁定的错误。

5xx - 服务器错误

服务器由于遇到错误而不能完成该请求。

HTTP 500 - 内部服务器错误

Error 501 - 未实现 页眉值指定了未实现的配置。

HTTP 502 - 网关错误 Web 服务器用作网关或代理服务器时收到了无效响应。

如果试图运行的 CGI 脚本不返回有效的 HTTP 标头集,将出现此错误信息。

HTTP 502.1 - CGI 应用程序超时。

HTTP502.2 - CGI 应用程序出错。application.

HTTP 503 - 服务不可用。这个错误代码为 IIS 6.0 所专用。

HTTP 504 - 网关超时。

HTTP 505 - HTTP 版本不受支持。

HTTP 500-11 服务器关闭

HTTP 500-12 应用程序重新启动 应用程序正忙于在 Web 服务器上重新启动

应用程序正在重新启动。 这表示您在 IIS 重新启动应用程序的过程中试图加载 ASP 页。刷新页面后,此信息即会消失。如果刷新页面后,此信息再次出现,可能是防病毒软件正在扫描 Global.asa 文件。

HTTP 500-13 - Web服务器太忙

HTTP 500-14 - 应用程序无效

HTTP 500-15 - 不允许直接请求 global.asa

HTTP500.16 – UNC 授权凭据不正确。这个错误代码为 IIS 6.0 所专用。

HTTP 500.18 – URL 授权存储不能打开。这个错误代码为 IIS 6.0 所专用。

HTTP 500.100 - 内部服务器错误 - ASP 错误

ASP 错误。 如果试图加载的 ASP 页中含有错误代码,将出现此错误信息。若要获得更确切的错误信息,请禁用友好 HTTP 错误信息。默认情况下,只会在默认 Web 站点上启用此错误信息。

概要

当用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字代码。该状态代码记录在 IIS 日志中,同时也可能在 Web 浏览器或 FTP 客户端显示。状态代码可以指明具体请求是否已成功,还可以揭示请求失败的确切原因。

更多信息

日志文件的位置

在默认状态下,IIS 把它的日志文件放在 %WINDIR/System32/Logfiles 文件夹中。每个万维网 (WWW) 站点和 FTP 站点在该目录下都有一个单独的目录。在默认状态下,每天都会在这些目录下创建日志文件,并用日期给日志文件命名(例如,exYYMMDD.log)。

以下是关于FTP的一些协议

FTP

1xx - 肯定的初步答复

这些状态代码指示一项操作已经成功开始,但客户端希望在继续操作新命令前得到另一个答复。 110 重新启动标记答复。

120 服务已就绪,在 nnn 分钟后开始。

125 数据连接已打开,正在开始传输。

150 文件状态正常,准备打开数据连接。

2xx - 肯定的完成答复

一项操作已经成功完成。客户端可以执行新命令。 200 命令确定。

202 未执行命令,站点上的命令过多。

211 系统状态,或系统帮助答复。

212 目录状态。

213 文件状态。

214 帮助消息。

215 NAME 系统类型,其中,NAME 是 Assigned Numbers 文档中所列的正式系统名称。

220 服务就绪,可以执行新用户的请求。

221 服务关闭控制连接。如果适当,请注销。

225 数据连接打开,没有进行中的传输。

226 关闭数据连接。请求的文件操作已成功(例如,传输文件或放弃文件)。

227 进入被动模式 (h1,h2,h3,h4,p1,p2)。

230 用户已登录,继续进行。

250 请求的文件操作正确,已完成。

257 已创建“PATHNAME”。

3xx - 肯定的中间答复

该命令已成功,但服务器需要更多来自客户端的信息以完成对请求的处理。 331 用户名正确,需要密码。

332 需要登录帐户。

350 请求的文件操作正在等待进一步的信息。

4xx - 瞬态否定的完成答复

该命令不成功,但错误是暂时的。如果客户端重试命令,可能会执行成功。 421 服务不可用,正在关闭控制连接。如果服务确定它必须关闭,将向任何命令发送这一应答。

425 无法打开数据连接。

426 Connection closed; transfer aborted.

450 未执行请求的文件操作。文件不可用(例如,文件繁忙)。

451 请求的操作异常终止:正在处理本地错误。

452 未执行请求的操作。系统存储空间不够。

5xx - 永久性否定的完成答复

该命令不成功,错误是永久性的。如果客户端重试命令,将再次出现同样的错误。

500 语法错误,命令无法识别。这可能包括诸如命令行太长之类的错误。

501 在参数中有语法错误。

502 未执行命令。

503 错误的命令序列。

504 未执行该参数的命令。

530 未登录。

532 存储文件需要帐户。

550 未执行请求的操作。文件不可用(例如,未找到文件,没有访问权限)。

551 请求的操作异常终止:未知的页面类型。

552 请求的文件操作异常终止:超出存储分配(对于当前目录或数据集)。

553 未执行请求的操作。不允许的文件名。

常见的 FTP 状态代码及其原因

150 - FTP 使用两个端口:21 用于发送命令,20 用于发送数据。状态代码 150 表示服务器准备在端口 20 上打开新连接,发送一些数据。

226 - 命令在端口 20 上打开数据连接以执行操作,如传输文件。该操作成功完成,数据连接已关闭。

230 - 客户端发送正确的密码后,显示该状态代码。它表示用户已成功登录。

331 - 客户端发送用户名后,显示该状态代码。无论所提供的用户名是否为系统中的有效帐户,都将显示该状态代码。

426 - 命令打开数据连接以执行操作,但该操作已被取消,数据连接已关闭。

530 - 该状态代码表示用户无法登录,因为用户名和密码组合无效。如果使用某个用户帐户登录,可能键入错误的用户名或密码,也可能选择只允许匿名访问。如果使用匿名帐户登录,IIS 的配置可能拒绝匿名访问。

550 - 命令未被执行,因为指定的文件不可用。例如,要 GET 的文件并不存在,或试图将文件 PUT 到您没有写入权限的目录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: