金九银十即将来临啦,我梳理了50道计算机网络面试题,每一道题目都特别经典,大厂也非常喜欢问。相信大家看完,会有新的收获滴~
1. 说说HTTP常用的状态码及其含义?
思路: 这道面试题主要考察候选人,是否掌握HTTP状态码这个基础知识点。
不管是不是面试需要,我们都要知道,日常开发中的这几个状态码的含义哈:
2. HTTP 常用的请求方式,区别和用途?
思路: 这道题主要考察候选人,是否掌握HTTP请求方式这个基础知识点,我们用得比较多就是GET和POST啦。
3. 请简单说一下你了解的端口及对应的服务?
4. 说下计算机网络体系结构
思路: 这道题主要考察候选人,计算机网络体系结构这个基础知识点。计算机网路体系结构呢,有三层:ISO七层模型、TCP/IP四层模型、五层体系结构。大家可以记住这个图,如下
计算机网络体系结构
4.1 ISO七层模型
ISO七层模型是国际标准化组织(International Organization for Standardization)制定的一个用于计算机或通信系统间互联的标准体系。
★”
应用层:网络服务与最终用户的一个接口,常见的协议有:HTTP FTP SMTP SNMP DNS.
表示层:数据的表示、安全、压缩。,确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。
会话层:建立、管理、终止会话,对应主机进程,指本地主机与远程主机正在进行的会话.
传输层:定义传输数据的协议端口号,以及流控和差错校验,协议有TCP UDP.
网络层:进行逻辑地址寻址,实现不同网络之间的路径选择,协议有ICMP IGMP IP等.
数据链路层:在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路。
物理层:建立、维护、断开物理连接。
4.2 TCP/IP 四层模型
★”
应用层:对应于OSI参考模型的(应用层、表示层、会话层)。
传输层: 对应OSI的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。
网际层:对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。
网络接口层:与OSI参考模型的数据链路层、物理层对应。
4.3 五层体系结构
★”
应用层:对应于OSI参考模型的(应用层、表示层、会话层)。
传输层:对应OSI参考模型的的传输层
网络层:对应OSI参考模型的的网络层
数据链路层:对应OSI参考模型的的数据链路层
物理层:对应OSI参考模型的的物理层。
5 如何理解HTTP协议是无状态的
思路: 这道题主要考察候选人,是否理解Http协议,它为什么是无状态的呢?如何使它有状态呢?
如何理解无状态这个词呢?
★当浏览器第一次发送请求给服务器时,服务器响应了;如果同个浏览器发起第二次请求给服务器时,它还是会响应,但是呢,服务器不知道你就是刚才的那个浏览器。简言之,服务器不会去记住你是谁,所以是无状态协议。
”
可以通过一个生活中的例子,来更好理解并记住它:
有状态场景:
-
小红:今天吃啥子?
-
小明:罗非鱼~
-
小红:味道怎么样呀?
-
小明:还不错,好香。
无状态的场景:
-
小红:今天吃啥子?
-
小明:罗非鱼~
-
小红:味道怎么样呀?
-
小明:?啊?你说啥?什么鬼?什么味道怎么样?
Http加了Cookie的话:
-
小红:今天吃啥子?
-
小明:罗非鱼~
-
小红:你今天吃的罗非鱼,味道怎么样呀?
-
小明:还不错,好香。
6.从浏览器地址栏输入url到显示主页的过程
思路: 这道题主要考察的知识点是HTTP的请求过程,DNS解析,TCP三次握手,四次挥手这几个要点,我们都可以讲下。
-
DNS解析,查找域名对应的IP地址。
-
与服务器通过三次握手,建立TCP连接
-
向服务器发送HTTP请求
-
服务器处理请求,返回网页内容
-
浏览器解析并渲染页面
-
TCP四次挥手,连接结束
7. 说下HTTP/1.0,1.1,2.0的区别
思路: 这道题主要考察的知识点是HTTP几个版本的区别,我们记住HTTP/1.0默认是短连接,可以强制开启,HTTP/1.1默认长连接,HTTP/2.0采用多路复用就差不多啦。
HTTP/1.0
-
默认使用短连接,每次请求都需要建立一个TCP连接。它可以设置
Connection: keep-alive
这个字段,强制开启长连接。
HTTP/1.1
-
引入了持久连接,即TCP连接默认不关闭,可以被多个请求复用。
-
分块传输编码,即服务端没产生一块数据,就发送一块,用”流模式”取代”缓存模式”。
-
管道机制,即在同一个TCP连接里面,客户端可以同时发送多个请求。
HTTP/2.0
-
二进制协议,1.1版本的头信息是文本(ASCII编码),数据体可以是文本或者二进制;2.0中,头信息和数据体都是二进制。
-
完全多路复用,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,而且不用按照顺序一一对应。
-
报头压缩,HTTP协议不带有状态,每次请求都必须附上所有信息。Http/2.0引入了头信息压缩机制,使用gzip或compress压缩后再发送。
-
服务端推送,允许服务器未经请求,主动向客户端发送资源。
8. POST和GET有哪些区别?
思路: 这道题主要考察的知识点是POST和GET的区别,可以从数据包、编码方式、请求参数、收藏为书签、历史记录、安全性等几方面去回答哈。
9. 在交互过程中如果数据传送完了,还不想断开连接怎么办,怎么维持?
这个问题记住keep-alive
就好,也就是说,在HTTP中响应体的Connection字段指定为keep-alive
即可
10. HTTP 如何实现长连接?在什么时候会超时?
思路: 这道题实际上是考察TCP长连接的知识点,HTTP的长连接实质是指TCP的长连接。至于什么时候超时,我们记住这几个参数如tcp_keepalive_time、tcp_keepalive_probes就好啦
什么是HTTP的长连接?