Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

字节一面:输入URL,但是访问失败的可能原因是什么?如何排查?

当时只回答了三种可能,分别是URL格式错误、网络不稳定、域名和ip的映射关系改变,面试完后认真复盘总结了更全面问题的可能性。

思考角度:从HTTP的状态码角度分析原因

  1. 返回4××的状态码

    表示服务器的请求端出现了错误,可能是URL的格式写错了,也可能是请求的资源根本不存在

  2. 返回5××的状态码

    可能是当前服务器被大量请求冲垮、服务器启动了限流机制、服务器正在维护关闭了对外的服务

思考角度:从输入URL到页面展示过程中每一个环节可能出现的问题

  1. 用户输入错误

    请求URL格式错误

  2. 浏览器故障

    需要重启浏览器

  3. 缓存还是旧版本的问题

    ​ 在输入URL后,浏览器首先会在浏览器缓存中找域名对应的 ip,如果浏览器缓存中不存在则操作系统会在其缓存中找 ip,若操作系统缓存中依旧没有,那么在 hosts文件中找,若在这三个过程中任意一个过程找到缓存,那么会给浏览器返回ip,如果受访网页重新对域名和ip地址做了映射,那么在缓存中的映射就是错的,无法通过缓存返回的 ip 建立连接。

    ​ 解决方法就是:清除缓存

  4. 防火墙设置

    首先通过 nslookup 命令查找域名对应的 ip 地址

    然后在防火墙设置中查看“出站规则”中是否对要访问的 ip 启用了禁止

  5. DNS服务器的问题

    ​ DNS被劫持:DNS中的映射表被恶意篡改,将原本正确的 ip 地址改为别的 ip,使得网址不能访问或者访问到了别的网址

    ​ 解决方法:可以不通过本地DNS服务器,直接访问公共的DNS服务器解决

  6. 网站服务器问题

    ①网站正在遭受大量的请求访问,此时网站可能出现崩塌或者开启限流机制,就像0点秒杀大促的情况,怎么也登不上系统

    ②网站正在升级或者维护,关闭了对外的服务

  7. 网络受到安全攻击

    用户发送的请求包被劫持,用户发送的包根本就没有被服务端收到

评论