打开网页出现404
刷新了三次,打开那个页面还是网页白的。中间一行黑字:404 Not Found。出现我盯着它看了几秒,打开像是网页走错门,敲了半天,出现里头明明没人,打开门牌号却挂得端端正正。网页
这事几乎每天都会碰上。出现你点开一个收藏夹里存了半年的打开链接,或者从某个论坛的网页老帖里顺着爬过去,结果一头撞上这堵墙。出现404不是打开网络故障,它恰恰说明服务器是网页活的——它听见了你的请求,翻遍了目录,出现然后告诉你:你要的东西,不在这儿。
我头一回认真琢磨这个数字,是几年前整理旧博客。那会儿我把文章从一家平台搬到自建站,链接结构全变了。旧地址一个都没做重定向,全变成了404。有个读者发邮件来问,说三年前收藏的一篇教程打不开了,问是不是我删了。我没删。东西还在,只是换了地方。但对她来说,那个链接就是死了。
它其实是个状态码,不是一句骂人的话
HTTP协议里,404属于“客户端错误”那一类。意思是,你请求的地址,服务器上找不到对应资源。跟403不一样——403是找到了但不让你看。跟410也不一样——410是明确告诉你,这东西曾经存在过,现在永久没了。404最含糊:它不承认也不否认,只是说“没有”。
很多人以为404页面是网站随便糊弄的。其实返回什么内容,服务器有得选。有些站点会给你一个搜索框,有些塞一堆推荐文章,还有些干脆放个迷你游戏。Google的404页面以前有只断线的机器人,后来换成了简笔画。这些设计都在做同一件事:别让用户扭头就走。
可大部分404页面没这么讲究。一行默认报错,白底黑字,连个回首页的链接都懒得放。你只能按后退键。这种体验像什么?像你去便利店买水,店员头也不抬说“没有”,然后继续刷手机。水确实没有,但你下次可能就不进这家店了。
链接会死,但死法各不相同
我查过自己站点的访问日志。404最多的来源,是早年间从其他网站导过来的外链。那些网站有的改版了,有的关停了,有的把文章路径从/archives/123换成了/posts/hello-world。链接一断,爬虫和用户就一起撞墙。
还有一种死法更隐蔽:大小写。服务器跑在Linux上,About.html和about.html是两个完全不同的文件。你在Windows上写链接,顺手打了个大写,传上去就404。我因为这个毛病,丢过整整一个图片目录。后来学乖了,所有文件名强制小写,链接全部用相对路径。
最冤的是那种“看起来没死”的404。页面能打开,但内容是空的。比如某个API接口挂了,前端没做错误处理,直接渲染出一片空白。用户以为网卡了,其实是后端返回了404,只是被前端吞掉了。这种时候你连报错都看不见,只能靠开发者工具里的Network面板。
我自己的404页面改过四版
第一版是默认的Nginx报错页,丑得不行。第二版加了个搜索框和最新文章列表。第三版手写了一段话:“这个地址后面没有东西了,但你可以去首页看看。”第四版干脆放了一张我拍的旧铁轨照片,旁边两行小字:路到这里断了,换条道走。
改到第四版的时候我想通了一件事:404页面不是用来道歉的。用户点进来,已经知道出错了。他们要的是下一步去哪。给搜索框比给道歉有用,给几个热门链接比说“对不起”有用。甚至给一个“随便逛逛”的按钮,都比空白页强。
有数据说,用户遇到404之后,超过一半的人会直接关掉标签页。剩下的人里,大部分会手动改地址栏,试着把路径删掉一段。只有很少的人会去点你精心设计的404页面上的链接。但就是这很少的人,值得你把那个页面做得像样一点。
昨天我又看到一个404。是个独立博客的旧文章,作者已经不更新了,域名还在续费。页面标题写着“文章不存在”,底下有一行小字:“如果你是从搜索引擎来的,可以试试站内搜索。”我试了。搜到了。那篇文章换了个标题,还在。
链接会断,服务器会改,人会走。404只是网络在告诉你:这里曾经有过东西,或者从来没有过。你换条路走就是了。
(责任编辑:探索)
-
代理IP提取网站,听起来像是一群技术宅自嗨的产物。但真正做过数据抓取、爬虫采集、或者搞过账号批量注册的人,会明白这玩意儿有多刚需。 我去年接了个活,要抓某电商平台的商品价格做竞品分析。刚开始用自己电脑
...[详细]
-
百度网盘是个好东西,也是个坏东西。好东西在于它几乎垄断了国内文件分享的命脉,坏东西在于它总能让你在下载时体验什么叫“速度与激情”的反义词。但别急着骂,今天这篇教程,就专治各种网盘疑难杂症。 先解决最让
...[详细]
-
《安全牛网络安全行业全景图》第十版发布那天,我盯着那份密密麻麻的图表看了很久。不是因为它收录了四百多家厂商,也不是因为划分了十四个一级安全领域——真正让我愣住的,是里面一个不起眼的角落:数据安全治理
...[详细]
-
网信办能监控微信聊天吗?能。但这事儿得掰开揉碎了说,不然容易吓着自己。 去年有个做外贸的朋友跟我抱怨,说他在微信里跟客户聊了句“这批货走香港港口”,第二天就接到辖区派出所电话,问他是不是有走私嫌疑。他
...[详细]
-
渗透测试这行当,说白了就是和系统管理员玩猫鼠游戏。你以为是黑客电影里那种炫酷的敲代码?错。真正的渗透,九成时间在翻垃圾——不是比喻,是真翻垃圾箱。我见过最狠的一次,测试目标是一家银行,门禁系统固若金汤
...[详细]
-
传智健康的项目代码,我翻来覆去看了三遍。第一遍看业务逻辑,第二遍看权限设计,第三遍纯粹是好奇——为什么这套代码能在培训机构里被反复当作教学样板。 它不花哨。没有微服务,没有分布式事务,没有炫技般的La
...[详细]
-
我接手过一个企业官网的改版项目。原网站有三百多个页面,分散在五个子域名下,内容重复率超过四成。最离谱的是,同一款产品的介绍,在新闻中心、产品中心、下载专区里各有一份,数据还不一致。用户反馈说,搜“型号
...[详细]
-
昨天深夜,一个老彩民在群里发了一张截图,显示他在“澳洲幸运5”上连续中了七把。有人追着问他怎么做到的,他只回了四个字:看“冷热号”。然后甩出一份自己整理的近五十期开奖号码统计表。我盯着那张表看了很久,
...[详细]
-
Java里实现拦截器,最直接的办法是实现 `HandlerInterceptor` 接口。别被“拦截器”这个名字吓住,它本质就是三个回调方法,Spring MVC 在请求处理的不同阶段帮你调用。你只需
...[详细]
-
凌晨两点十七分,我盯着屏幕上那个红色的漏洞报告,突然觉得它像一扇没关严的门。门缝里透出的光,是攻击者正在试探的呼吸。 这是上周刚上线的新系统,测试环境里一切完美,压测数据漂亮得能挂进PPT。可真实流量
...[详细]

网恋骗局案例
网络工程师
windows系统漏洞提权辅助网站
分手网站
163k门户系统
