转载自 面试必考的网络协议相关题目应该如何回答
最近,正处于校招季。很多小伙伴已经拿到了如愿以偿的Offer,有些小伙伴还在努力着。
平常,也会有一些粉丝会在公众号留言,或者在微信上问我一些面试题。其中有一类问题是除了Java基础以外大家问的比较多的。那就是和计算机网络相关的问题。
在大学计算机相关的课程中,有几门课程是比较重要的:计算机网络、数据结构与算法、数据库和操作系统。这些都是比较基础的计算机相关知识。
计算机网络由于比较抽象,又没有实践的方法,使很多朋友不太容易理解。但是,这相关的知识又非常重要,所以很多大厂的面试官总爱考这类问题。
简单总结一下BAT等大厂经常爱考的计算机网络相关的面试题目:
1、什么是OSI七层模型,什么是TCP/IP四层模型。
2、TCP和UDP之间的区别是什么。
3、TCP的三次握手和四次关闭的原理,为什么要三次握手。
4、什么是TCP的丢包和粘包
5、IPV4和IPV6的区别是什么,为什么需要IPV6
6、get和post的区别
7、forward和redirect的区别
8、什么是HTTPS,什么是HTTP/2
9、一次网络请求的全过程
10、什么是DNS、什么是CDN。
这就是围绕着计算机网络常考的10道面试题。其实这10道题,主要围绕的就是HTTP、TCP、UDP等网络协议来的。
这些知识点,千万不要死记硬背,要从OSI七层模型入手,真正的理解七层之间到底是什么样的关系,不同层次中到底使用哪种协议,不同层次之间到底如何交互的。
上面这张图是关于计算机网络有关的各种知识点的汇集。可供读者们查缺补漏。
我和我的同事,最爱考面试者的一道题目是:如果在浏览器地址栏输入www.taobao.com之后,到用户看到页面之前,都发生了什么?
这道题,可以充分的了解到面试者对于网络传输、Web开发等知识的理解程度。我一般比较关注的几个答题要点,如果可以在自己的回答中涉及到这几个点,我会认为这个面试者是比较全面的:
DNS、CDN、负载均衡、反向代理、HTTP(post、get)、TCP/IP四层数据流转(握手、关闭)、Servlet(filter)、MVC、缓存、持久化、页面渲染等。
以上这些是我觉得一个面试者应该重点关注的方面。
有很多朋友问我像计算机网络这类知识点该如何学习。让我给推荐一些书籍和学习资料。
书籍的话,推荐机械工业出版社的《计算机网络(第六版)》,这也是一本大学教材,豆瓣评分较高,评价和内容都还不错。
其他资料的话,还推荐一个极客时间上面专栏——《趣谈网络协议》,这是通过讲故事的方式介绍网络协议的。
这个专栏确实内容比较不错,讲解的也比较好,但是这毕竟是一个付费的专栏,本来我是不打算推荐的。