404 Not Found错误页面是什么?
404 Not Found错误页面是一个非常普遍的现象,该页面的目的是告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口离开,虽然404错误页面在所难免,但网页设计师们却可以在该页面上做一些有趣的变动,引导用户使用网站其它页面而不是关闭窗口离开。
自定义404错误页面是增强用户体验的很好的做法,搜索引擎通过HTTP状态码来识别网页的状态,当搜索引擎获得了一个错误链接或死链接时,网站应该返回404状态码,告诉搜索引擎放弃对该链接的抓取。
1、什么是404 Not Found
当用户试图通过HTTP或文件传输协议访问一台正在运行Internet信息服务(IIS)的服务器上的内容时,IIS返回一个表示该请求的状态的数字代码,该状态代码记录在IIS日志中,同时也可能在Web浏览器或FTP客户端显示,状态代码可以指明具体请求是否已成功,还可以揭示请求失败的确切原因。
404是HTTP其中一种的标准回应信息,通俗的说,当用户浏览网页时,服务器无法正常提供信息,例如用户输入了错误链接;或者无法相应并且找不到原因,这时候页面会出现这个404页面。
404是一个信息码,通常之后会有一个可读信息反馈给用户:Not Found,它意味着网页不存在,通俗的来说,404页面就是当用户输入了错误的链接时,返回的页面。
HTTP 404或Not Found错误信息是HTTP的其中一种“标准回应信息”(HTTP状态码),此信息代表客户端在浏览网页时,服务器无法正常提供信息,或是服务器无法回应且不知原因。
404 not found其实代表一个404页面,当用户在浏览网页的时候,由于服务器无法正常提供信息,或者是服务器无法回应,且不知道原因而返回的错误页面,目的是告诉搜索引擎该页面不存在,不再让搜索引擎爬虫去继续访问这个页面了!
2、网页404页面的由来
看到这些,或许可能还会在想, 404页面是什么?为什么会叫做404页面呢?说到这就不得不说一下由来了。
听说在第三次科技革命之前,互联网就是一个大型的中央数据库的形态,就在404房间里面设置这个数据库,在那个时候所有的请求都是有人工手动完成的,如果请求者所需要的文件没有在数据库中没有找到,或者因为请求者写错了文件编号而没有被找到,用户就会得到一个返回信息:room 404 : file not found,后来互联网不断被人们使用后,人们也就习惯了用404作为服务器未找到文件的错误代码了。
通俗来讲,所有网站都有一个404页面,当用户因为点击错误链接或权限问题被拒绝访问的时候这个页面,如下图是一般默认的404页面。
但由于这个页面对用户来说并不友好,所以通常网站都会自定义自己的404页面,有使用上面默认404页面的(最丑陋、最无趣)、有自动跳转到首页的、有自动跳转到帮助页面、搜索或导航页面的,当然最多还是稍带些幽默感的404页面。
3、设置404页面的目的
对于404页面设置的目的,一是起到告诉用户页面是错误的,增加用户体验外;还有一种做用就是让蜘蛛爬行的更为的顺畅。
从访客的角度来看,404页面的目的就是告诉浏览者其所请求的页面已经不存在或链接错误,同时引导用户使用网站其他页面,而不是关闭窗口离开。
另外,404页面的作用就是告诉搜索引擎,在网站出现错误链接的时候,能清楚的表达出来这是错误的。
一般的情况下蜘蛛爬行会根据内链的URL进行爬行抓取,而一旦出现错误的url时,蜘蛛无法判断着是错误的时候,我们就必须通过404页面告诉它这是错误的。这样的话就能让蜘蛛在这个URL的判断上,产生正面的回应,不然就会对网站产生不良的后果,比如一个网站URL错误很多,或者死链非常多,这就会给搜索引擎一种不信任的感觉。
一个好的网站是以用户为基础的,蜘蛛也只是一个访客而已,所有告诉用户页面存在错误的时候,也要标明如何到达真确的地方,也就是404页面里面必须要有首页的返回链接,这样在用户或者蜘蛛遇到麻烦时,就知道该怎么办了。
而当页面可以自定义的时候就意味着它还可以发挥更多的作用,在引导用户的同时还可以展示招聘信息,以及很多大型网站介绍的404公益信息。
4、微软最初设计的“404 Error”页面
几乎所有使用IE浏览器的人都对“无法显示该页”(404 Error)印象深刻,它代表了你没有连接到网络或者该网址不存在,前些天,前微软IE工程师陈本峰聊天时,刚好说起了一件有关这个页面的趣事:
404是表示对方服务器无响应的HTTP状态码,因此当IE浏览器无法连接到特定网页时,便会自动弹出“404 Error”的页面,而时任IE工程师的陈本峰则设计了IE8中的“404 Error”页面。
据微软统计,在IE7的年代,微软IE部门客服中心接到最多的询问是IE浏览器弹出“该页无法显示”,并且无法加载任何网页。事实上,造成这一问题最多的原因是用户没有插网线,客服在接到此类询问时都会引导用户去检查网络设置,因此,在设计IE8的404页面时加入了“诊断连接问题”的提示,引导用户自主排查网络连接问题。
这一个小改进造成的影响却意外的强大,IE8发布后,IE部门的客服费用从5000万美元降低到了200万美元,当然,导致客服费用降低的除了这一页面的改动,还有IE8整体易用性的加强和IE客服部门的优化等。
尽管IE浏览器经过了多次迭代,这设计却得到了延续;只是把内容从引导用户手动检查网络变成了提供按钮一键检测网络。
5、为什么要设计404页面?
尽管404页面被用户看到的概率相对全站的其他页面要小很多,但页面难免会出错,无论是用户的误操作还是服务器的原因,这是一个极少数才会出现的错误情况,作为网页的设计者或者开发者,有时候我们无法控制错误页面的出现,但我们可以通过使用一个定制的404错误页面将损害降到最低。
好的用户体验是我们不能放过任何一个小的细节,一我们需要在这个页面很好的把信息传达给用户,二引导用户下一步的操作,引导用户留在我们的网站而不是沮丧的关闭窗口。
在此,马海祥就以下面的这个404页面为例,跟大家讲解一下:
此404页面采用了传统的提示+相关推荐引导的形式:
(1)、向用户表示歉意,用户不会主动访问404,访问到404让用户很不愉快,道歉可以使用户减少对网站的抱怨。并明确提示用户想要的信息不存在。
(2)、形象的图片配合文字,让用户直观感受。
(3)、适当的引导用户,并给他们有用的链接,自动跳转,秒数倒计时也是贴心的服务。
(4)、其他一些选择,因为访问到404的不止是个人,也有可能是商家。
(5)、推荐网站内的相关热门商家,不让用户失望而归。
一个精心设计的404错误页可以帮助网站避免丢失用户的信任,并正确引导用户返回站点其它页面,以便用户能停留在网站上更长时间,减少客户的流失量,在马海祥看来,一个好的404页面设置,其实也是提高用户体验的一种表现形式(具体可查看马海祥博客《》的相关介绍)。
6、触发404 not found的原因
我们在浏览网页的时候,有时候页面中会提示404 not found,那么404 not found是什么意思?导致网页中会出现404 not found页面的原因有哪些呢?针对此问题,本文中马海祥也为大家进行了分析:
第一种:用户输入的地址链接有误,导致IIS提示404 not found。
第二种:服务器上本该有的页面已经被删除了,这种情况多发于BBS论坛,N年前的帖子如今被你通过搜索引擎搜索出来了,但实际上BBS论坛为了保障服务器的资源合理运用,都会将过期或非常久远的信息页面删除,导致404 not found。
第三种:DNS设置阻止,就中文环境而言,国外有一些被禁网站在中国浏览同样会出现404 not found的现象,这需要使用代理服务器才可以正常浏览。
从专业的角度来讲造成的原因有三种情况:
(1)、无法在所请求的端口上访问Web站点。
(2)、Web服务扩展锁定策略阻止本请求。
(3)、MIME映射策略阻止本请求。
7、怎样找出网站中的404错误页面
如上面我们提到的,大量404 not found会影响用户和搜索引擎的体验,提交死链删除也就变的很有必要了,那么,我们该怎样找出网站中的404错误页面?
(1)、最直接的方法,查看网站的访问日志,根据返回404状态码找出404错误页面。
(2)、根据网站记录404的流量统计,可以很方便找出404错误页面。
(3)、如果站点同目录下的死链可以根据死链的url规则来判断并找出这些死链。
(4)、对于泛域名解析导致的死链,每个泛域名都是一个相对独立的站点,少量的收录可以用手工的方式来收集,但是大量收录只能借助第三方工具从百度都搜索引擎中抓取出来。
8、页面出现404的解决方法
上网后,在浏览这些站点时遇到各种不同的连接错误,这种错误一般是由于网站发生故障或者你没有浏览权限所引起,最常见的就是404 not found错误信息(具体可查看马海祥博客《》的相关介绍),主要是因为浏览器不能找到你所要求的网页文件,该文件可能根本不存在或者已经被转移到其他地方,对此,马海祥为大家提供的解决方法有以下几点:
(1)、对于存在的网页内容由于路径改变而导致访问不了时,可在IIS中定义404错误指向一个动态页面,在页面里面使用301永久重定向跳转到新的地址,此时服务器返回301状态码。
(2)、设置404指向一个设计好的html文件,此时页面返回的404状态码,现在的idc提供商基本都提供404设置的功能,直接上传文件设置即可。
在IIS中设置方法:打开IIS管理器-->点击要设置自定义404的网站的属性-->点击自定义错误选项-->选中404页-->选中并打开编辑属性-->设置成 URL --> URL 里填写“/err404.html”-->按确定退出再把做好的err404.html页面上传到网站根目录下。
此处在“消息类型”中一定要选择“文件”或“默认值”,而不要选择“URL”,不然,将导致返回“200”状态码。
(3)、404指向一个动态页面,比如error.asp,如果不在页面里面进行设置,仅仅是返回提示的HTML代码,将导致页面返回200状态码,这是不正确的,我们可以在显示完提示内容后,增加语句:Response.Status="404 Not Found",这样就保证页面返回404状态码。
(4)、Apache下设置404错误页面。为Apache Server设置404错误页面的方法很简单,只需在.htaccess文件中加入如下内容即可,ErrorDocument 404 /notfound.php,切记不要使用绝对URL,如果使用绝对URL返回的状态码是“302”+“200”。
9、404页面对SEO的作用
自定义404错误页面是增强用户体验的很好的做法,但在应用过程中往往并未注意到对搜索引擎的影响,譬如:错误的服务器端配置导致返回“200”状态码或自定义404错误页面使用Meta Refresh导致返回“302”状态码。
正确设置的自定义404错误页面,不仅应当能够正确地显示,同时,应该返回“404”错误代码,而不是“200”或“302”,虽然对访问的用户而言,HTTP状态码究竟是“404”还是“200”来说并没有什么区别,但对搜索引擎这则是相当重要的(具体可查看马海祥博客《》的相关介绍)。
搜索引擎蜘蛛在请求某个URL时得到“404”状态回应时,即知道该URL已经失效,便不再索引该网页,并向数据中心反馈将该URL表示的网页从索引数据库中删除,当然,删除过程有可能需要很长时间;而当搜索引擎得到“200”状态码时,则会认为该url是有效的,便会去索引,并会将其收录到索引数据库,这样的结果便是这两个不同的url具有完全相同的内容:自定义404错误页面的内容,这会导致出现复制网页问题,轻则被搜索引擎降权,重则会K掉网站。
比方说,如果你的某篇文章(与之相应的网页)被搜索引擎收录了,你之后把它删除了,但是蜘蛛或机器人还没有来得及更新,这时用户通过搜索引擎访问了你这篇不存在的文章,出现的当然就是“无法找到该页”,蜘蛛和机器人这个时候是会生气的:你不是耍我吗?都答应收录你了,好比一个人没有信用就无法获得别人的信任,蜘蛛和机器人会对这样的网站留下不好的印象,结果就是把网站往后面排了。
如果404页面是站长编辑过的对用户友好的网页,这时候,蜘蛛和机器人就会认为,文章不是删除了,而是改变了内容,对网站的印象当然不会很差——显然这对SEO是很有好处的。
最后,马海祥要说的就是虽然404页面属于网站结构优化中的一个细节部分,只要我们把这些细节问题一一了解透彻,我相信对于一般的网站的SEO诊断是没任何问题的。
访问到错误页面是不愉快的用户体验,但作为设计者我们可以为用户想的更多,无论是像公益页面使404变废为宝,做有爱的404,还是一些幽默图片让用户会心一笑,我们需要花更多的精力和时间做更多有创意的事情。