面试是求职的必经之路,也是能力展现的第一道门槛。很多朋友周一面试失败,到周五还不知道失败的原因,不仅耽误了其他面试的发挥,也不利于面经的积累。
另一方面,面试多考察基础知识和理论掌握的熟练程度,计算机网络自然成为了面试官最喜欢考察的内容之一。今天就给大家安排一份「50道计算机网络面试题」,答案都十分详细,每一道都十分经典。
HTTP常用的请求方式,区别和用途?
-
GET: 发送请求,获取服务器数据
-
POST:向URL指定的资源提交数据
-
PUT:向服务器提交数据,以修改数据
-
HEAD:请求页面的首部,获取资源的元信息
-
DELETE:删除服务器上的某些资源。
-
CONNECT:建立连接隧道,用于代理服务器;
-
OPTIONS:列出可对资源实行的请求方法,常用于跨域
-
TRACE:追踪请求-响应的传输路径
从浏览器地址栏输入url到显示主页的过程
-
DNS解析,查找真正的ip地址
-
与服务器建立TCP连接
-
发送HTTP请求
-
服务器处理请求并返回HTTP报文
-
浏览器解析渲染页面
-
连接结束
说下计算机网络体系结构
计算机网络体系结构主要有OSI七层模型、TCP/IP四层模型、五层体系结构
OSI七层模型
OSI七层模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。
-
应用层:网络服务与最终用户的一个接口,协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP
-
表示层:数据的表示、安全、压缩。
-
会话层:建立、管理、终止会话。对应主机进程,指本地主机与远程主机正在进行的会话
-
传输层:定义传输数据的协议端口号,以及流控和差错校验。协议有:TCP UDP,数据包一旦离开网卡即进入网络传输层
-
网络层:进行逻辑地址寻址,实现不同网络之间的路径选择。协议有:ICMP IGMP IP(IPV4 IPV6)
-
数据链路层:建立逻辑连接、进行硬件地址寻址、差错校验等功能。
-
物理层:建立、维护、断开物理连接。
TCP/IP 四层模型
-
应用层:对应于OSI参考模型的(应用层、表示层、会话层),为用户提供所需要的各种服务,例如:FTP、Telnet、DNS、SMTP等
-
传输层:对应OSI的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。定义了TCP和UDP两层协议。
-
网际层:对应于OSI参考模型的网络层,主要解决主机到主机的通信问题。三个主要协议:网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)
-
网络接口层:与OSI参考模型的数据链路层、物理层对应。它负责监视数据在主机和网络之间的交换。
五层体系结构
-
应用层:通过应用进程间的交互来完成特定网络应用。对应于OSI参考模型的(应用层、表示层、会话层),应用层协议很多,如域名系统DNS,HTTP协议,支持电子邮件的 SMTP协议等等。我们把应用层交互的数据单元称为报文。
-
传输层:负责向两台主机进程之间的通信提供通用的数据传输服务。对应OSI参考模型的传输层,协议有传输控制协议 TCP 和 用户数据协议 UDP。
-
网络层:对应OSI参考模型的的网络层
-
数据链路层:对应OSI参考模型的的数据链路层
-
物理层:对应OSI参考模型的的物理层层。在物理层上所传送的数据单位是比特。物理层(physical layer)的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。
对称加密与非对称加密有什么区别?
对称加密:加密和解密使用相同密钥的加密算法
非对称加密:非对称加密算法需要两个密钥(公开密钥和私有密钥)。公钥和私钥是成对存在的,如果用公钥对数据进行加密,只有对应的私钥才能解密
HTTP状态码301和302的区别
-
301(永久移动)请求的网页已被永久移动到新位置。服务器返回此响应(作为对GET或HEAD请求的响应)时,会自动将请求者转到新位置
-
302:(临时移动)服务器目前正从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。此代码与响应GET和HEAD请求的301代码类似,会自动将请求者转到不同的位置。
HTTP状态码301和302的区别:
-
它们之间关键区别在,资源是否存在有效性
-
301资源还在只是换了一个位置,返回的是新位置的内容
-
302资源暂时失效,返回的是一个临时的代替页上
HTTP请求的过程与原理
HTTP是一个基于TCP/IP协议来传递数据的超文本传输协议,传输的数据类型有HTML文件、图片文件等。以访问百度为例子,看一下HTTP的请求过程
-
客户端进行DNS域名解析,得到对应的IP地址
-
根据这个IP,找到对应的服务器建立连接(三次握手)
-
服务器端收到客户端发送的FIN后,TCP协议栈就会自动发送ACK,接着进入CLOSE_AWIT状态
-
但是如果服务器端不执行socket的close()操作,那么就没法进入LAST_ACK,导致大量连接处于CLOSE_WAIT状态
-
所以,如果服务器出现了大量CLOSE_WAIT状态,一般是程序bug,或者关闭socket不及时
RARP协议的工作原理?
-
ARP(地址解析协议),是设备通过自己知道的IP地址来获得自己不知道的物理地址的协议
-
RARP(反向地址转换协议)以与ARP相反的方式工作。RARP发出要反向解析的物理地址并希望返回其对应的IP地址,应答包括由能够提供所需信息的RARP服务器发出的IP地址。(应用于无盘机)
RARP工作原理如下:
-
发送主机发送一个本地的RARP广播,在次广播包中,声明自己的MAC地址并且请求任何收到此请求鞥多RARP服务器分配一个IP地址
-
本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址
-
如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用
-
如果不存在,RARP服务器对此不做任何的响应
-
源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应,表示初始化失败
PDF展示