
想必,各位都曾有过以下经历,本想打开网页浏览资讯,怎料出现的却是个“404”?
3 F, [1 w/ f' o9 F4 o不用怀疑,你的页免丢失了。那么,“404”除了代表你所要浏览的页面丢失外,你可知它的产生原理?' [4 e" V2 C5 l6 \& q: L+ A
不仅如此,在庞大的互联网中除了404还有哪些HTTP状态码又分别代表着什么?
O6 s" t7 E9 C/ [/ g
你只知404是错误 却不知它竟还有这多含义
- e2 j8 ?. _, R3 n正如上面所述,404是一种标准的HTTP返回代码,官方称其为HTTP状态码,用来表示网页服务器HTTP的响应状态。 U/ q# ^, W% N A# C8 K
由于网站日志通常会记录下HTTP状态码,因此通过查看网站日志中的HTTP状态码,便可清楚地看到网站服务器与客户端之间的信息交换情况。
z, v4 R+ O D0 d/ _0 |' l) o虽然大多数的人知道404意味着页面丢失,却鲜有人对其进行更深入的研究。
$ c. t" O, T# G0 G) U其实,状态码可分成三个层级,例如404这样用三个数字表示的。需注意的是,在IIS即Internet信息服务中,也有不少微软制定的扩充状态码,例如格式像404.1这样的,能更深层次的让开发者找出错误原因。
; l) K' F3 r6 N& @, D' B4 g$ E; N进一步讲,几乎所有的HTTP状态码都被分成了五类。
& d/ n4 @* N3 v# a' K+ N# b' a& k‘1’开头,表示服务器收到请求并需要请求继续处理;‘2’开头,表成功响应,即成功处理了请求;‘3’开头,表重定向,也就是引导浏览器跳转到另一个资源页面;‘4’开头,则表示请求出错妨碍了服务器的处理,服务器会返回一个状态码解释到底是什么错误;而‘5’开头,表示服务器错误,但并非请求者的原因。
/ D; v9 o* q( R9 I) k/ ?
你只知404是错误 却不知它竟还有这多含义
2 `4 d* _3 k# t4 ` ?' l1 M例如,与404对应的200便是表示访问成功。实际上,请求过程中会有很多状态码快速的发生着变化,且看不出这些状态码是如何变化的,除非像打断点似的操作一步停一下。
: K2 t! Z0 g# C( Q# {9 ^( V4 G: z因此导致在服务器响应过程中,很多状态码我们是看不到的。
( E" `; I! D' o# C' _7 D, X
你只知404是错误 却不知它竟还有这多含义
8 M5 g+ J& H5 f5 q* a' O为何要设计诸如404的页面呢?要知道,以4开头的错误都与客户端有关,例如用户访问的页面可能已经不存在。当然,这样的概率相对于网站的其他页面而言要小的多。
4 E7 [* g. ~* i7 r0 ^另外,由于网站的开发者也无法控制错误页面的出现,开发者却能设计一个特别的404错误页面告知用户,在此错误页面上将信息传达给用户,引导其进行下一步操作。0 ]/ R$ f' j' v: q
那么,HTTP状态码又与SEO有什么关系呢?
7 L4 L( O, t, S9 W, i/ W j) ]) T6 L像之前所说的,网站日志会记录下HTTP状态码,因而查看网站日志里的HTTP状态码,便能清楚地看到网站服务器与客户端之间的信息交换情况,而这个客户端,既可以是用户浏览器也可以是搜索引擎或其他爬取工具(如RSS)。8 `* P. ~8 S% U& N
因此,对SEO而言HTTP状态码的重要意义在于,通过它我们可以查看搜索引擎在你网站的爬取情况。' L% X t0 a5 x% G
除了404以外,你还知道哪些HTTP状态码?8 Y% m( T+ k& V' \( q% ^
其实,这些状态码都有各自的含义,这里我们也向各位介绍几个比较常见的状态码及其含义,方便以后浏览页面遇到问题时,及时了解问题所在:
/ L3 j2 \) n& H成功2xx,成功处理了请求的状态码。例如200,代表服务器已成功处理请求并提供了请求的网页;204,代表服务器成功处理了请求,但没有返回任何内容。. t8 w9 U/ m4 R2 W+ {1 f) S% H: A
重定向3xx,表示每次请求中使用重定向不要超过5次。9 g7 R6 N& W( ~9 G6 v/ q% Z
例如301,表示请求的网页已永久移动到新位置;302,表示请求的网页临时移动到新位置;304,表示如果网页自请求者上次请求后没有更新,则用304代码告诉搜索引擎机器人,可节约带宽和开销。5 s- O+ b- t% y3 ]3 {: Z# K$ x
你只知404是错误 却不知它竟还有这多含义
" T# b2 |4 h7 U2 h. n- k1 D: F5 n
客户端错误4xx,代表请求可能出错妨碍了服务器的处理。7 B' N8 X) p$ e# W( T
例如400,表示服务器不理解请求的语法;403,表示服务器拒绝请求;404,代表服务器找不到请求的网页(服务器上不存在的网页经常会返回此代码);410,表示请求的资源永久删除后,服务器返回此响应(与404代码相似)。8 t [" a1 \0 r# M7 U' I8 U" i
服务器错误5xx,表示服务器在处理请求时内部发生错误,可能是服务器本身的错误而非请求出错;500代表服务器遇到错误,无法完成请求;503,服务器目前无法使用(由于超载或停机维护),通常只是暂时状态。0 \& B& g7 z' M1 Z
其实,除了上面列出的几个常见的HTTP状态码外还有很多状态码,这里就不为大家一一列举了,掌握一些基本的HTTP状态码,有助于我们在发现页面出现异常时,能够迅速“读懂”错误提示,尽快解决问题,同时也是为自己长面(臭显摆)的不错谈资。 |
|