转 http://www.fboss.com/article.asp?id=816
近来总有朋友咨询cPanel 的Awstats中“HTTP错误码(HTTP Error codes)”的含义,以及是否需要关注和处理。
关于Awstats请查看《CP How-To:如何使用cPanel查看站点统计数据(awstats)》 文章地址:
http://bbs.netpu.net/viewthread.php tid=694 其实这是一个误会,在这里它应该是“HTTP状态码(HTTP Status codes)”。
OK,既然是状态码,那么就可能有正确和错误两种状态了(至少不全是错误了,大大的松口气吧)。那么这些代码都代表什么含义呢?到底哪些是错误状态,哪些是正确状态呢?不要急,下边我冒充内行为大家做一个简单的介绍。
HTTP与Status codes
HTTP可能大家都熟悉,就是超文本传输协议。浏览器通过HTTP与WEB
Server通讯(也有一些其它软件比如IM使用HTTP协议传递数据),把我们的请求(HTTP
Request)传递给服务器,服务器响应这个请求,返回应答(HTTP Response)以及我们需要的数据。大致就是这个样子了。
如果
我们请求啥,服务器就返回啥,是乎就不需要HTTP Status
codes了。但是事情往往不是那么简单。比如我们请求一个网页页面,可是服务器不存在这个页面,或者这个页面被转移到其它地方,或者服务器禁止我们查看
这个页面等等,所以为了便于浏览器处理这些正确与不正确的情况,HTTP用Status codes来表示请求(HTTP
Request)在服务器端被处理的情况。Status codes通过应答(HTTP Response)返回给浏览器,浏览器根据这个作相应的处理。
HTTP Status codes的分类
既然有正确和错误的状态,HTTP定义两大类状态码是不是就可以了?人家制订协议的可是专家(不象我是冒充的),想得比我们要周全,要长远。HTTP 1.1中定义了5大类Status codes,分别是:
Informational 意义:信息 范围:1XX
Successful 意义:成功 范围:2XX
Redirection 意义:重定向 范围:3XX
Client Error 意义:客户端错误 范围:4XX
Server Error 意义:服务器错误 范围:5XX
您看看人家想得多周到啊,真专家就是真专家。
常见HTTP Status codes简介
下面简单介绍一下我们经常碰到的HTTP Status codes。
也许是我孤陋寡闻,常遇到的HTTP Status codes就那么几个,见笑啦。
Successful 200 - OK:OK
这个是最常见的啦(也许我们不会直接看到,但是如果您使用一些抓包工具,大多数http应答中都有这个)。意义很简单,就是说服务器收到并理解客户端的请
求而且正常处理了。 206 - Partial Content:部分内容。 这个也经常发生。很容易让大家发懵。
通俗点说就是如果客户端请求文档(图像,文本,声音等等)的部分内容,服务器正常处理,那么就返回206。大致意思就是它请求的时候,除了指定请求的内
容,还指定了偏移量以及长度。 部分内容,没搞错吧?呵呵没搞错,现在很多浏览器以及软件支持断点续传就是靠这个的。呵呵,以后看到206不要怕了。
Redirection 301 - Moved Permanently:永久移动。
这个状态码是指客户端要请求的资源已经被永久的转移到一个新的地方了。这个应答(HTTP
Response)里边同时包含了资源的新地址。它告诉客户端,如果下次还想要这个资源,那么就用新的地址去取。 302 Found:临时重定向。
这个状态码是指客户端要请求的资源临时放到一个新地方了。同样,应答中也包含了资源的新地址。 307 - Temporary
Redirect:临时重定向。(如果不去实现协议或者做相关开发,我们大致理解它很302差不多就可以啦)
有一篇谈重定向的文章《从Business.com遭封看302重定向》很有意思 我们转载了一份,地址:
http://bbs.netpu.net/viewthread.php
tid=810 Client Error 400 - Bad Request:错误请求 就是请求的语法错误,服务器无法理解。 401 –
Unauthorized:未授权 当服务器返回401 Code,就是告诉说客户端访问指定资源以前,必须通过服务器的授权。 403 –
Forbidden:禁止访问 就是不允许访问某些资源。 404 - Not Found:找不到 找不到客户端请求的内容
Server Error 500 - Internal Server Error 服务器内部错误。
结束语
越写越懒,所以就简简单单写这么多啦。没有啥大用处。如果能消除一两位关于这方面朋友的疑虑,就足以令我欣慰了。既然之前都说过是冒充内行,所以有错漏之处在所难免,还望大家不吝赐教。
需要深入研究这方面内容的朋友,千万不要看这篇文章,以免被此文误导。请学习官方的协议内容。 官方的资料地址:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html