十个人程序员里面,有十个都会说自己学过网络协议,九个人都会说自己懂网络协议。但是面试的时候,问几个问题,能回答的可能只有两三个。不信?来,我问你几道。
1、TCP 协议跟 UDP 协议有什么区别?
你说这个很简单?好,我们再问第二道。
2、HTTPS 协议的底层原理是什么?
不知道了?没关系,再来看一道题
3、阿里的 Dubbo 框架都使用了哪些传输协议和序列化协议?
不清楚啦?其实,参加过大厂面试的小伙伴应该都清楚,无论是国内的互联网大厂还是硅谷的 IT 公司,面试的时候多多少少都会问一些网络协议的知识。
网络协议是编程领域比较晦涩难懂的部分,但又是面试官特别喜欢问的问题,毕竟几乎所有的程序运行都会涉及到网络协议。
比如说你想优化公司的网站访问速度,大概的思路是减少 HTTP 请求,同时设置静态文件缓存时间、压缩情况、保持持久的连接时间等参数,但这些东西,又需要你系统了解 HTTP 协议。
分享一下我之前的学习经历吧,当时为了面试,更为了打好基本功,就一口气买了好几本“经典书”,信心满满地开始,可是学了一段时间之后才发现,这事并不简单呀。
“经典书”都很厚(比如《TCP/IP 详解》),读起来并不是那么容易,里面谈到了很多参数的含义,基本都是今天看完,明天就忘记的状态,最终就是放桌子上落灰了。
而且,对于书本里这些枯燥的讲解,也不知道怎么才能和工作结合起来,以及为什么这些协议会有这样看似「反人类」的设计。
所以我也没有坚持读下去。但扔掉书,回到工作中又发现,网络协议始终是绕不开的短板。
怎样能够更轻松地学习网络协议呢?这时候我遇到来,幸有一位大神替我指点迷津,这个大神就是前网易云计算的首席架构师。他甩给了我一本网络协议神级文档,一起看一下
目录:
由于文章篇幅限制,仅展示部分内容,需要获取完整版学习的朋友,添加小助理vx:mxzFAFAFA来领取!
1章通信协议概述
1.1为什么要学习网络协议
1.2网络分层的真实含义
1.3 ifconfig:熟悉又陌生的命令行