HTTP状态码(HTTP Status codes)简介

转载自http://www.cnblogs.com/liunx/archive/2010/04/27/1721791.html


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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: HTTP(超文本传输协议)是用于在Web服务器和Web浏览器之间传输数据的协议。HTTP状态码用于指示特定HTTP请求的处理结果,共有五种类型的HTTP状态码: 1. 信息性状态码(Informational Status Codes)- 100到199之间的状态码。例如,100表示请求已被接收,继续处理。 2. 成功状态码(Successful Status Codes)- 200到299之间的状态码。例如,200表示请求已成功,并返回所需的数据。 3. 重定向状态码(Redirection Status Codes)- 300到399之间的状态码。例如,301表示所请求的资源已被永久移动到新位置。 4. 客户端错误状态码(Client Error Status Codes)- 400到499之间的状态码。例如,404表示所请求的资源未找到。 5. 服务器错误状态码(Server Error Status Codes)- 500到599之间的状态码。例如,500表示服务器在处理请求时发生了错误。 希望这能够帮助您理解HTTP状态码的基本分类。 ### 回答2: HTTP状态码是用来表示HTTP请求的处理结果的标准化数字代码。根据RFC 2616规范,HTTP状态码可以分为5种类别: 1. 信息类(1xx):信息类状态码表示请求已经被接受,服务器正在处理,并会继续传输信息。常见的状态码包括: - 100 Continue:服务器已经接收到请求的首部,并要求接下来的请求使用相同的连接发送。 - 101 Switching Protocols:服务器已经理解了来自客户端的请求,并将通过upgrade首部指定的协议进行协议转换。 2. 成功类(2xx):成功类状态码表示请求已经被服务器成功接收、理解和处理。常见的状态码包括: - 200 OK:请求成功。 - 201 Created:请求成功并且服务器已经创建了新的资源。 - 204 No Content:服务器成功处理请求,但没有返回响应内容。 3. 重定向类(3xx):重定向类状态码表示需要进一步操作以完成请求。常见的状态码包含: - 301 Moved Permanently:被请求的资源已永久移动到新的URL。 - 302 Found:请求的资源临时被移动到新的URL。 - 304 Not Modified:自从上次请求后,请求的资源未发生修改,使用缓存的内容。 4. 客户端错误类(4xx):客户端错误类状态码表示客户端发出的请求有误或无法完成。常见状态码包括: - 400 Bad Request:请求参数有误或语法有误。 - 403 Forbidden:服务器拒绝请求。 - 404 Not Found:请求的资源不存在。 5. 服务器错误类(5xx):服务器错误类状态码表示服务器不能处理请求。常见的状态码包括: - 500 Internal Server Error:服务器内部错误。 - 502 Bad Gateway:作为代理或网关的服务器从上游服务器收到错误响应。 - 503 Service Unavailable:服务器暂时过载或正在维护,无法处理请求。 通过使用不同的HTTP状态码,可以更好地对请求进行处理和识别,使通信更加准确和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值