
想必,各位都曾有过以下经历,本想打开网页浏览资讯,怎料出现的却是个“404”?
+ Q0 Z5 j# u2 V" J/ x不用怀疑,你的页免丢失了。那么,“404”除了代表你所要浏览的页面丢失外,你可知它的产生原理?2 ~/ g2 a7 j4 E% }" F j
不仅如此,在庞大的互联网中除了404还有哪些HTTP状态码又分别代表着什么?: p" A9 e5 O3 I, q9 P
你只知404是错误 却不知它竟还有这多含义
$ N( N3 l0 w, |/ g1 x( I9 ~+ o正如上面所述,404是一种标准的HTTP返回代码,官方称其为HTTP状态码,用来表示网页服务器HTTP的响应状态。
$ e% c1 c, x# J! `由于网站日志通常会记录下HTTP状态码,因此通过查看网站日志中的HTTP状态码,便可清楚地看到网站服务器与客户端之间的信息交换情况。3 ?9 _2 a9 s& ^/ y3 S
虽然大多数的人知道404意味着页面丢失,却鲜有人对其进行更深入的研究。
& P( o! ?% n8 L1 b+ k) D其实,状态码可分成三个层级,例如404这样用三个数字表示的。需注意的是,在IIS即Internet信息服务中,也有不少微软制定的扩充状态码,例如格式像404.1这样的,能更深层次的让开发者找出错误原因。- [* a. ]7 Z9 _. [- z) a/ e; P
进一步讲,几乎所有的HTTP状态码都被分成了五类。
' H; z/ Y5 b4 b4 \5 |1 h1 x6 O/ T‘1’开头,表示服务器收到请求并需要请求继续处理;‘2’开头,表成功响应,即成功处理了请求;‘3’开头,表重定向,也就是引导浏览器跳转到另一个资源页面;‘4’开头,则表示请求出错妨碍了服务器的处理,服务器会返回一个状态码解释到底是什么错误;而‘5’开头,表示服务器错误,但并非请求者的原因。( E8 d# @% s) z- u2 q: L0 O: e
你只知404是错误 却不知它竟还有这多含义
% M6 F# F/ H$ l9 m例如,与404对应的200便是表示访问成功。实际上,请求过程中会有很多状态码快速的发生着变化,且看不出这些状态码是如何变化的,除非像打断点似的操作一步停一下。' t1 l/ H+ W1 }: g8 k/ n/ j
因此导致在服务器响应过程中,很多状态码我们是看不到的。
_% @ v0 S! v; a# W, s
你只知404是错误 却不知它竟还有这多含义
D' ^7 a, w5 f& l/ d) k' W
为何要设计诸如404的页面呢?要知道,以4开头的错误都与客户端有关,例如用户访问的页面可能已经不存在。当然,这样的概率相对于网站的其他页面而言要小的多。
% z. {, b4 p; O/ _8 i" V: L- J: C. L9 F另外,由于网站的开发者也无法控制错误页面的出现,开发者却能设计一个特别的404错误页面告知用户,在此错误页面上将信息传达给用户,引导其进行下一步操作。
, p; U+ n/ l" h6 D9 U4 r) I* Y那么,HTTP状态码又与SEO有什么关系呢?8 S% U3 d1 [. g/ v
像之前所说的,网站日志会记录下HTTP状态码,因而查看网站日志里的HTTP状态码,便能清楚地看到网站服务器与客户端之间的信息交换情况,而这个客户端,既可以是用户浏览器也可以是搜索引擎或其他爬取工具(如RSS)。' S* q: B+ p" n, N3 N
因此,对SEO而言HTTP状态码的重要意义在于,通过它我们可以查看搜索引擎在你网站的爬取情况。
8 r1 t: X+ g1 J. D除了404以外,你还知道哪些HTTP状态码?% q# N6 {9 t$ \/ _2 l! {
其实,这些状态码都有各自的含义,这里我们也向各位介绍几个比较常见的状态码及其含义,方便以后浏览页面遇到问题时,及时了解问题所在:9 k' e4 X6 R5 k) l
成功2xx,成功处理了请求的状态码。例如200,代表服务器已成功处理请求并提供了请求的网页;204,代表服务器成功处理了请求,但没有返回任何内容。
- ~3 j8 ?/ p# b5 b重定向3xx,表示每次请求中使用重定向不要超过5次。! a- a1 o5 r B& o) c
例如301,表示请求的网页已永久移动到新位置;302,表示请求的网页临时移动到新位置;304,表示如果网页自请求者上次请求后没有更新,则用304代码告诉搜索引擎机器人,可节约带宽和开销。) ?' m" r3 b/ n3 s/ u9 |
你只知404是错误 却不知它竟还有这多含义
) }7 z2 t* h8 _# n. U
客户端错误4xx,代表请求可能出错妨碍了服务器的处理。. C! S" {/ o+ D* H) m4 c0 P3 v. n
例如400,表示服务器不理解请求的语法;403,表示服务器拒绝请求;404,代表服务器找不到请求的网页(服务器上不存在的网页经常会返回此代码);410,表示请求的资源永久删除后,服务器返回此响应(与404代码相似)。
6 C5 m4 q- S' v' j: i* l' f; f+ C服务器错误5xx,表示服务器在处理请求时内部发生错误,可能是服务器本身的错误而非请求出错;500代表服务器遇到错误,无法完成请求;503,服务器目前无法使用(由于超载或停机维护),通常只是暂时状态。
- W" [' A" O. s! N其实,除了上面列出的几个常见的HTTP状态码外还有很多状态码,这里就不为大家一一列举了,掌握一些基本的HTTP状态码,有助于我们在发现页面出现异常时,能够迅速“读懂”错误提示,尽快解决问题,同时也是为自己长面(臭显摆)的不错谈资。 |
|