注明装载地址:http://blog.neazor.com/?p=550
这些状态代码表示临时的响应。客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应。
1
2
3
|
100
-
继续
101
-
切换协议
|
这类状态代码表明服务器成功地接受了客户端请求。
1
2
3
4
5
6
7
8
|
200
-
确定。客户端请求已成功
201
-
已创建
202
-
已接受
203
-
非权威性信息
204
-
无内容
205
-
重置内容
206
-
部分内容
|
客户端浏览器必须采取更多操作来实现请求。例如,浏览器可能不得不请求服务器上的不同的页面,或通过代理服务器重复该请求。
1
2
3
4
|
302
-
对象已移动。
304
-
未修改。
307
-
临时重定向。
|
发生错误,客户端似乎有问题。例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
400
-
错误的请求
401
-
访问被拒绝
·
401.1
-
登录失败。
·
401.2
-
服务器配置导致登录失败。
·
401.3
-
由于
ACL
对资源的限制而未获得授权。
·
401.4
-
筛选器授权失败。
·
401.5
-
ISAPI
/
CGI
应用程序授权失败。
·
401.7
–
访问被
Web
服务器上的
URL
授权策略拒绝。这个错误代码为
IIS
6.0
所专用。
403
-
禁止访问
·
403.1
-
执行访问被禁止。
·
403.2
-
读访问被禁止。
·
403.3
-
写访问被禁止。
·
403.4
-
要求
SSL。
·
403.5
-
要求
SSL
128。
·
403.6
-
IP
地址被拒绝。
·
403.7
-
要求客户端证书。
·
403.8
-
站点访问被拒绝。
·
403.9
-
用户数过多。
·
403.10
-
配置无效。
·
403.11
-
密码更改。
·
403.12
-
拒绝访问映射表。
·
403.13
-
客户端证书被吊销。
·
403.14
-
拒绝目录列表。
·
403.15
-
超出客户端访问许可。
·
403.16
-
客户端证书不受信任或无效。
·
403.17
-
客户端证书已过期或尚未生效。
·
403.18
-
在当前的应用程序池中不能执行所请求的
URL。这个错误代码为
IIS
6.0
所专用。
·
403.19
-
不能为这个应用程序池中的客户端执行
CGI。这个错误代码为
IIS
6.0
所专用。
·
403.20
-
Passport
登录失败。这个错误代码为
IIS
6.0
所专用。
404
-
没有找到文件或目录
·
404.1
-
无法在所请求的端口上访问
Web
站点。
·
404.2
-
Web
服务扩展锁定策略阻止本请求。
·
404.3
-
MIME
映射策略阻止本请求。
405
-
用来访问本页面的
HTTP
谓词不被允许(方法不被允许)
406
-
客户端浏览器不接受所请求页面的
MIME
类型
407
-
要求进行代理身份验证
412
-
前提条件失败
413
–
请求实体太大
414
-
请求
URI
太长
415
–
不支持的媒体类型
416
–
所请求的范围无法满足
417
–
执行失败
423
–
锁定的错误
|
服务器由于遇到错误而不能完成该请求。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
500
-
内部服务器错误
·
500.12
-
应用程序正忙于在
Web
服务器上重新启动。
·
500.13
-
Web
服务器太忙。
·
500.15
-
不允许直接请求
Global
.
asa。
·
500.16
–
UNC
授权凭据不正确。这个错误代码为
IIS
6.0
所专用。
·
500.18
–
URL
授权存储不能打开。这个错误代码为
IIS
6.0
所专用。
·
500.100
-
内部
ASP
错误。
501
-
页眉值指定了未实现的配置
502
-
Web
服务器用作网关或代理服务器时收到了无效响应。
502.1
-
CGI
应用程序超时
502.2
-
CGI
应用程序出错。
application
503
-
服务不可用。这个错误代码为
IIS
6.0
所专用
504
-
网关超时
505
-
HTTP
版本不受支持
|
表示请求的网页(文件)与上次对比没有更新。
意思是蜘蛛来到你的网站,你网站没有更新内容,并且与上次一样,就会返回304代码。如果每次蜘蛛来你的网站都有新的内容出现,就会反回200代码。因为304代码是记录网站内容是否有更新,在24小时内没有更新,那么快照就会停止。同样,如果返回的304太多,表示网站没有更新,蜘蛛也就不会经常光顾, 影响收录。
把蜘蛛来的时候给记录下来,算出蜘蛛每隔多久来一次网站,然后就分隔多久更新一下文章,更新文章时要原创+转载。让蜘蛛每次来都能够有新的内容,而不是无功而返。这样就会产生很多200代码。
如果客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端。只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 。对于静态文件,例如:CSS、图片,服务器会自动完成 Last Modified 和 If Modified Since 的比较,完成缓存或者更新。但是对于动态页面,就是动态产生的页面,往往没有包含 Last Modified 信息,这样浏览器、网关等都不会做缓存,也就是在每次请求的时候都完成一个 200 的请求。
因此,对于动态页面做缓存加速,首先要在 Response 的 HTTP Header 中增加 Last Modified 定义,其次根据 Request 中的 If Modified Since 和被请求内容的更新时间来返回 200 或者 304 。虽然在返回 304 的时候已经做了一次数据库查询,但是可以避免接下来更多的数据库查询,并且没有返回页面内容而只是一个 HTTP Header,从而大大的降低带宽的消耗,对于用户的感觉也是提高。
304不是错误。是请求一下图片,如果图片在上次访问后没有更新过,就不用下载了,返回304,叫浏览器直接用cache里的,
这个很正常的。可以打开火狐firebug使用"网络"功能查看加载一个页面时所有请求文件的状态,再F5看一下,会看到很多是304,表示直接从浏览器缓存中读取的。