我们看网站日志的时侯经常发现一些客户访问留下的服务器返回码,通过这些返回码我们可以知道我们的网站存在哪些问题。
HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。
今天我们先把这些错误代码给罗列出来,不再用纠结网站各种异象了。
1、当网站进行调整 页面进行修改的时候 便会有网页被删除 改名或移动位置 虽然相应内容的网页还存在于网站中 但使用原来的地址访问则无法访问 或者由于拼写错误导致一个无效的链接 都将使服务器返回404状态码。
2、web服务器默认的404错误页面 均十分简陋 呆板且对用户不友好 无法给予用户寻找相应信息的更多线索 用户看到这类页面往往最直接的反应并是关闭浏览器窗口离开 这在很大程度上给网站造成损失 对网站来说 用户永远是最重要的资源 以这种方式损失用户更意味着某种程度的失败。
3、这也是许多网站使用自定义404错误页面的原因 通过良好的自定义404 页面 可以包含对网站的相应介绍 用户可能感兴趣的内容链接或者网站内容导航链接 内容搜索功能等 能够有效地帮助访问者找到其欲寻找的内容或相似的内容 提高用户在网站内浏览更多信息的机会。
4、正确定义404错误页面
1)对于已经存在的信息由于路径改变而导致访问不了时 应该在IIS 中定义404错误指向一个动态页面 在页面里面使用301跳转到新的地址 此时服务器返回301状态码。
2)当访问一个错误的链接时 将调用404页面 但由于在IIS里面设置的不同将导致返回不同的状态码:
1. 404指向的是一个htm 文件 此时页面返回的404 状态码 这是正确的。
2. 404指向的是一个url 例如/error.asp如果不在页面里面进行设置 仅仅是返回提示的html代码 将导致页面返回200状态码 此时的危害在于 当很多页面找不到时 都返回和访问正常页面时返回一样的200状态码 将使搜索引擎认为该链接存在 并以错误页面的内容进行收录 当这样的链接很多时 将导致大量页面重复 使网站排名降低 处理方法:在显示完提示内容后 增加语句: Response.Status=”404 Not Found” 这样就保证页面返回404 状态码。
3. 避免在调用404页面的时候返回302状态码 容易被搜索引擎认为是重定向作弊。
4. 检测方法 使用httpwatch查看返回代码。
除了这些还有很多的服务器代码
2xx-成功
这类状态代码表明服务器成功地接受了客户端请求
200-确定客户端请求已成功
201-已创建
202-已接受
203-非权威性信息
204-无内容
205-重置内容
206-部分内容
3xx-重定向
客户端浏览器必须采取更多操作来实现请求 浏览器可能不得不请求服务器上的不同的页面 或通过代理服务器重复该请求
301-对象已永久移走 即永久重定向
302-对象已临时移动
304-未修改
307-临时重定向
4xx-客户端错误
发生错误 客户端似乎有问题 客户端请求不存在的页面 客户端未提供有效的身份验证信息
400-错误的请求
401-访问被拒绝 IIS定义了许多不同的401错误 它们指明更为具体的错误原因 这些具体的错误代码在浏览器中显示 但不在IIS日志中显示
401.1-登录失败
401.2-服务器配置导致登录失败
401.3-由于acl对资源的限制而未获得授权
401.4-筛选器授权失败
401.5-ISAPI/CGI应用程序授权失败
401.7–访问被Web服务器上的URL授权策略拒绝 这个错误代码为IIS6.0所专用
403-禁止访问 IIS定义了许多不同的403错误 它们指明更为具体的错误原因
5xx-服务器错误
服务器由于遇到错误而不能完成该请求 500-内部服务器错误
500.12-应用程序正忙于在Web服务器上重新启动
500.13-Web服务器太忙
500.15-不允许直接请求Global.asa
500.16–UNC授权凭据不正确 这个错误代码为IIS6.0所专用
500.18–URL授权存储不能打开 这个错误代码为IIS6.0所专用
500.100-内部ASP错误
501-页眉值指定了未实现的配置
502-Web服务器用作网关或代理服务器时收到了无效响应
502.1-CGI应用程序超时
502.2-CGI应用程序出错 application.
503-服务不可用 这个错误代码为IIS6.0所专用
504-网关超时