《HTTP权威指南》笔记之 网络状态码

状态码分为五大类,

1100
~ 199
信息性状态码


状态码


含义


原因短语


100


说明服务器收到了请求的初始部分,请客户端继续发送


Continue


101


说明服务器正在根据客户端的指定,将协议转换成为 Update首部所列的协议


Switching Protocol

2200
~ 299
成功状态码


状态码


原因短语


含义


200


OK


请求没问题


201


Ctreated


用于创建服务器对象的请求(如PUT)


202


Accepted


请求已被接受,但服务器还未对其执行任何动作,不保证服务器会完成这个请求


203


Non-Authoritative


实体首部包含的信息不是来自于源端服务器,而是来自资源的一份副本


204


No content


报文中没有包含实体内容


205


Reset Content


用于浏览器的代码,负责告知浏览器清除当前页面中所有的HTML表单元素


206


Partial Content


说明成功执行了一部分(或某个范围内)的请求,但尚未完全完成请求

3300
~ 399
重定向状态码

所谓重定向就是收到客户端请求了
,但是由于客户端请求的资源已经被移动了位置(而客户端不知道),因此要么告知客户端使用替代位置来访问他们所感兴趣的资源,要么提供一个替代的响应而不是资源的内容。

可以通过重定向状态码来对资源的应用程序本地副本与源端服务器上的资源进行验证对比,是不是最新的资源。


状态码


原因短语


含义


300


Multiple Choices

(多种选择)


当客户端请求的URL实际上指向多个资源的时候返回此码,通常会附带可供选择的选项,让客户端选择,如某个URL请求的资源含有中文和英文的两个版本,服务器不知道客户端需要哪一个,所以返回此码


301


Moved Permanently
(永久移动)


当请求的URL已被永久地移除时候使用,返回的Location首部中应该会包含资源的新地方URL


302


Found
(临时移动)


与301类似,但是由于不是永久移动,将来可能还会移回去原处,因此现在客户端应该使用location首部给出的URL来临时定位资源,以后再次使用还是用原来的老URL
.


303


See other


参看其他位置)


请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。对于除 HEAD 之外的所有请求,服务器会自动转到其他位置。


304


Not Modified

(未被修改)


客户端通过所包含的请求首部,使得请求变成有条件的,自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。如果网页自请求者上次请求后再也没有更改过,您应将服务器配置为返回此响应(称为 If-Modified-Since HTTP 标头)。服务器可以告诉 Googlebot 自从上次抓取后网页没有变更,进而节省带宽和开销。


305


Use Proxy


出于安全考虑,客户端不能直接访问该资源,要通过代理来访问,代理的位置由Location的首部给出。


306


未使用


307


Temporary Redirect(临时重定向)


服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来响应以后的请求。此代码与响应 GET 和 HEAD 请求的 <a href=answer.py?answer=>301</a>
代码类似,会自动将请求者转到不同的位置,但您不应使用此代码来告诉 Googlebot
某个页面或网站已经移动,因为 Googlebot
会继续抓取原有位置并编制索引。

你可能发现了,302和307几乎是一样的作用。其实这些区别在于
HTTP 1.0 与 1.1版本的不一样所导致的。

为了避免与HTTP 1.0
冲突,因为
当需要临时重定向时,HTTP 1.0
希望给客户端一个302,而HTTP 1.1规范则使用303
来处理这种情况。如此冲突了。

为了把302状态码保留起来,于是使用307给
HTTP 1.1使用来重定向。

4400
~ 499
客户端错误状态码

有时候,客户端会发送一些服务器无法处理的东西,如格式错误的请求报文,或是一个根本不存在的URL ,这时候服务器就会返回
这样的错误码。


400(错误请求)


服务器不理解请求的语法。


401(未授权)


请求要求身份验证。对于登录后请求的网页,服务器可能返回此响应。


403(禁止)


服务器拒绝请求。如果您在 Googlebot
尝试抓取您网站上的有效网页时看到此状态码(您可以在 Google
网站管理员工具诊断下的网络抓取页面上看到此信息),可能是您的服务器或主机拒绝了
Googlebot 访问。


404(未找到)


服务器找不到请求的网页。例如,对于服务器上不存在的网页经常会返回此代码。


405(方法禁用)


禁用请求中指定的方法。


406(不接受)


无法使用请求的内容特性响应请求的网页。


407(需要代理授权)


此状态码与401类似,但指定请求者应当授权使用代理。如果服务器返回此响应,还表示请求者应当使用代理。


408(请求超时)


服务器等候请求时发生超时。


409(冲突)


服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。服务器在响应与前一个请求相冲突的 PUT
请求时可能会返回此代码,以及两个请求的差异列表。


410(已删除)


如果请求的资源已永久删除,服务器就会返回此响应。该代码与 404(未找到)代码类似,但在资源以前存在而现在不存在的情况下,有时会用来替代
404 代码。如果资源已永久移动,您应使用 301
指定资源的新位置。


411(需要有效长度)


服务器不接受不含有效内容长度标头字段的请求。


412(未满足前提条件)


服务器未满足请求者在请求中设置的其中一个前提条件。


413(请求实体过大)


服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。


414(请求的 URI
过长)


请求的 URI(通常为网址)过长,服务器无法处理。


415(不支持的媒体类型)


请求的格式不受请求页面的支持。


416(请求范围不符合要求)


如果页面无法提供请求的范围,则服务器会返回此状态码。


417(未满足期望值)


服务器未满足”期望”请求标头字段的要求。

5500
~ 599
服务器错误状态码

这些状态码表示服务器在处理请求时发生内部错误。这些错误是服务器本身的错误,而不是请求出错(本身请求是有效正确的),如服务器本身技术上的bug。


500(服务器内部错误)


服务器遇到错误,无法完成请求。


501(尚未实施)


服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。


502(错误网关)


服务器作为网关或代理,从上游服务器收到无效响应。


503(服务不可用)


服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。


504(网关超时)


服务器作为网关或代理,但是没有及时从上游服务器收到请求。


505(HTTP
版本不受支持)


服务器不支持请求中所用的 HTTP
协议版本。

《HTTP权威指南》笔记之 网络状态码

时间: 2024-10-02 22:06:31

《HTTP权威指南》笔记之 网络状态码的相关文章

Struts2权威指南笔记

1.mvc特点包括: ① 多个视图可以对应一个模型 ② 模型返回的数据与显示逻辑分离 ③ 应用层被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性 ④ 控制层的概念也很有效,由于它把不通的模型和不同的视图组合在一起,完成不同的请求 ⑤ Mvc更符合软件工程化管理的精神 2.Struts2框架的大致处理流程: ① 浏览器发送请求,如请求/mypage.action ② 核心控制器FilterDispatcher根据请求决定调用合适的Action ③ Webwork的拦截器链自动对请求应用通用

Android笔记之网络状态判断

1.首先当然得在 manifest 中添加检查网络状态的权限: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permission android:name="android.permission.INTERNET"/> 2.具体判断步骤 (1)首先要先获得Android 对连接管理的一

css 权威指南笔记

部分属性选择: 选择class 属性中包含warning的元素 [class~="warning"]{font-weight:bold} 子串匹配属性选择器: 在现代浏览器中得到支持 包括ie7 特定属性选择器: css 权威指南笔记

三次握手与网络状态码

网络状态码: 200:成功 301:资源暂时重定向 302:资源永久重定向 403:没有权限 404:找不到资源 500:服务器内部错误 503:资源过载 三次握手: 第一次:客户端向服务器发送syn包(syn=j),等待服务器响应.客户端进入syn_send状态 第二次:服务器接收客户端发送syn包(ack=j+1),并向客户端发送syn包(syn=ack)即syn+ack,服务器进入syn_recv状态 第三次:客户端接收服务器发送的syn+ack包,向服务器发送确认包ack(ack=k+1

网络状态码301与302

网络状态码301与302 """ 301和302都是HTTP状态的编码,都代表着某个URL发生了转移. 301跳转,也叫“永久性转移”,301会把原网页权重转移到重定向目标的网站上面. 302跳转也称为,“临时性跳转”. 区别 1.使用效果不同 302跳转是暂时的跳转,搜索引擎会抓取新的内容而保留旧的网址.因为服务器返回302代码,搜索引擎认为新的网址只是暂时的. 301重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址. "&quo

HTTP权威指南笔记-概述

1.1 通讯 Web内容是存储在服务器上的,Web服务所使用的是HTTP协议,所以经常称为HTTP服务器.通讯过程为客户端(正常我们所使用的)发出请求,服务端根据客户端的HTTP请求响应相应数据,这就是基本的HTTP通讯. 1.2 传输内容与附加类型MIME 客户端向服务端获取内容有N多种类型,如:Word.JPEG.AVI.HTML等等上千种. 在传输过程中为分辨传输内容类型,Web服务器会为所有HTTP对象数据附加一个MIME类型.当Web浏览器(客户端)向服务器获取一个对象时,会根据MIM

Android笔记之网络状态

先上一个工具类的代码: package com.yonyou.util; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; /** * 判断当前网络状态 * @author xxx * */ public class NetWorkUtil { static NetWorkUtil netWorkUtil; private NetWorkU

JavaScript权威指南笔记——第1部分

# <JavaScript权威指南>笔记--第1部分 说明: 印刷版:2012年4月第1版 2016年9月第17次印刷. 本书的风格和<Effective Java>很类似,推荐一下. 该笔记逆序记录的. ----------------------- ------<end>------ | node的helloworld程序: ```js //! program.js // 通过在命令行输入`node program.js`来运行,然后在浏览器中打开网址`127.0.

Android笔记之网络状态推断

1.首先当然得在 manifest 中加入检查网络状态的权限: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permission android:name="android.permission.INTERNET"/> 2.详细推断步骤 (1)首先要先获得Android 对连接管理的一