前端为什么要了解tcp/http和操作系统

133 阅读2分钟

我目前的经历告诉我,了解了之后,可以快速的定位问题,简单点说,快速甩锅。一直以来的感觉是,前端是最容易背锅的存在。

1. 关于tcp/http的故事

  • 1. 问题

我们目前接口服务使用的是http1.1。关于如果查看自己当前使用的http版本,可以通过request header或者response header的view source查看。

有一天一个用户反应,你们这个系统有个接口特别慢。然后各方各自自查。

网络端给出原因,你们这个怎么永远只有一个TCP连接啊?前端看一下。

我打开测试环境的network, 我有6个http请求啊,怎么看我有几个TCP连接啊?

通过询问,获得查看tcp连接工具

先在我的测试环境查看,有6个连接啊。再去正式环境查看,确实只有一个,其余的都pending。

这肯定不是前端的问题,锅甩出去了。

  • 2. 原因

服务端启用了http2。稍微了解过http2的人都知道,http2只支持一个TCP。

2. 关于操作系统

一天,用户A又说,你们这个大文件上传也太慢了,20多个G的文件hash计算要一个小时。

有点懵,不对啊,我们都是三五分钟就完事的啊。

然后A甩出一张计时1h的截图。

把A同样的文件拿过来,自己测,还是三五分钟啊。

我:“是不是你电脑配置不好?”

A:”配置和你电脑一样啊。“

我:”等我去你那瞅瞅。"。

确实慢!!无果。

这时隔壁大佬凑头过来瞟了一眼:“我看看任务管理器。”

大佬:“你磁盘读写太慢了,E盘,只有10M/s。”

我火速跑回去查我的电脑,嗯,C盘,100+M/s。

我:“为啥我的电脑这么快啊?”

大佬:“你从C盘传的吧,C盘是SSD啊,SSD是固态硬盘,其他盘都是机械硬盘,固态硬盘本身就读写快。”

我为了确认,找B从E盘传同样的文件。和我C盘速度差不多。

再跑过去问大佬。

大佬查看了一些B的型号之后。

大佬:“A的硬盘型号比B晚了两年,B的是WDC"。

哦哦,新旧也有差异。

虽然还是一知半解,但是以后遇到类似的问题,应该知道查找方向了。