我们在面试的时候,总是会提前搜集大量面经,一方面我们希望能从中获取一些有用的讯息,另一方面我们也可以检测目前我们所掌握的知识深浅。
对于互联网从业人员来说,计算机网络是常识般的存在,因此在面试中也是常考的问题之一,今天给大家分享一份计算机网络常考面试题汇总,共50道,全部是基础精选的问题,每个问题后都有详细的答案解析,希望能给在金九银十招聘季中努力奋斗的大家一点点帮助。
HTTP常见的请求方式,区别和用途?
- GET: 发送请求,获取服务器数据
- POST:向 URL 指定的资源提交数据
- PUT:向服务器提交数据,以修改数据
- HEAD:请求页面的首部,获取资源的元信息
- DELETE:删除服务器上的某些资源。
- CONNECT:建立连接隧道,用于代理服务器;
- OPTIONS:列出可对资源实行的请求方法,常用于跨域
- TRACE:追踪请求-响应的传输路径
说下计算机网络体系结构
计算机网络体系结构主要有 ISO 七层模型、TCP/IP 四层模型、五层体系结构
ISO 七层模型
ISO 七层模型是国际标准化组织(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流程是怎样的?
- HTTPS = HTTP + SSL/TLS,即用 SSL/TLS 对数据进行加密和解密,Http 进行传输。
- SSL,即 Secure Sockets Layer(安全套接层协议),是网络通信提供安全及数据完整性的一种安全协议。
- TLS,即 Transport Layer Security(安全传输层协议),它是 SSL 3.0 的后续版本
1、用户在浏览器里输入一个 https 网址,然后连接到 server 的 443 端口。
2、服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过。这套证书其实就是一对公钥和私钥。
3、服务器将自己的数字证书(含有公钥)发送给客户端。
4、客户端收到服务器端的数字证书之后,会对其进行检查,如果不通过,则弹出警告框。如果证书没问题,则生成一个密钥(对称加密),用证书的公钥对它加密。
5、客户端会发起 HTTPS 中的第二个 HTTP 请求,将加密之后的客户端密钥发送给服务器。
6、服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后得到客户端密钥,然后用客户端密钥对返回数据进行对称加密,这样数据就变成了密文。
7、服务器将加密后的密文返回给客户端。
8、客户端收到服务器发返回的密文,用自己的密钥(客户端密钥)对其进行对称解密,得到服务器返回的数据。
Session 和 Cookie 的区别
我们先来看 Session 和 Cookie 的定义:
- Cookie 是服务器发送到用户浏览器,并保存在浏览器本地的一小块文本串数据。它会在浏览器下次向同一服务器再发起请求时,被携带发送到服务器。通常,它用于告知服务端两个请求是否来自同一浏览器,一样用于保持用户的登录状态等。Cookie使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。
- session 指的就是服务器和客户端一次会话的过程。 Session 利用 Cookie 进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个 Cookie,当这个 Session 结束时,其实就是意味着这个 Cookie 就过期了。Session 对象存储着特定用户会话所需的属性及配置信息。
Session 和 Cookie 到底有什么不同呢?
- 存储位置不一样,Cookie 保存在客户端,Session 保存在服务器端。
- 存储数据类型不一样,Cookie 只能保存 ASCII,Session 可以存任意数据类型,一般情况下我们可以在 Session 中保持一些常用变量信息,比如说 UserId 等。
- 有效期不同,Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般有效时间较短,客户端关闭或者 Session 超时都会失效。
- 隐私策略不同,Cookie 存储在客户端,比较容易遭到不法获取,早期有人将用户的登录名和密码存储在 Cookie 中导致信息被窃取;Session 存储在服务端,安全性相对 Cookie 要好一些。
- 存储大小不同, 单个 Cookie 保存的数据不能超过 4K,Session 可存储数据远高于Cookie
TCP 和 UDP 的区别
1、TCP 面向连接((如打电话要先拨号建立连接);UDP 是无连接的,即发送数据之前不需要建立连接。
2、TCP 要求安全性,提供可靠的服务,通过 TCP 连接传送的数据,不丢失、不重复、安全可靠。而 UDP 尽最大努力交付,即不保证可靠交付。
3、TCP 是点对点连接的,UDP 一对一,一对多,多对多都可以
4、TCP 传输效率相对较低,而 UDP 传输效率高,它适用于对高速传输和实时性有较高的通信或广播通信。
5、TCP 适合用于网页,邮件等;UDP 适合用于视频,语音广播等
6、TCP 面向字节流,UDP 面向报文
更多展示
与其他面试题汇总不同,这份不仅给出你答案,更以图表的形式,让你理解问题,这样有一个好处是,即使它换了种问法,你也能答得上来。既增加了面试成功率,也提高了你的知识储备,十分特殊,值得收藏。
【领取方式见下图!!】