HTTP 面试题
1. 什么是 HTTP?HTTP 的作用是什么?
HTTP 全称:HyperText Transfer Protocol ,超文本传输协议。 HTTP 从客户端到服务器端等一系列运作流程提供规范,是目前互联网上使用的最广泛的一种规 范。 、
- HTTP 协议用于客户端和服务器端之间的通信
- 通过请求和相应的交换达成通信
- HTTP 是一种不保存状态的协议
- HTTP 通过使用 URI 来定位互联网的资源
2. 什么是 TCP/IP?
- 计算机与网络设备通信,须基于一定的方法规范来进行。确定通信对象、通信语言选择、开始 结束通信方式、不同操作系统或者硬件之间如何通信,这些都是需要制定的规则协议。
- TCP/IP 协议就是由这些多种互联网通信相关协议组合而成,HTTP 为期子集。大部分常用的互 联网网络,均通过 TCP/IP 协议族来进行。
- TCP/IP 协议族常见的协议还包括:TCP、IP、HTTP、FDDI、FTP、DNS、UDP、SNMP 等。
- TCP/IP 也是指 TCP 和 IP 这两种协议,是在 IP 协议的通行过程中,使用到的协议族的统称。
3. TCP/IP 协议族分几层?
TCP/IP 协议族可以分为 4 层,分别是应用层、传输层、网络层和链路层。
- 应用层:应用服务之间的通信协议规范,如 FTP、DNS 和 HTTP 都在这层。
- 传输层:传输层对应用层传输两台计算机之间的数据。传输层主要使用以下两种协议: 传输控制协议 TCP(数据传输的单位是报文段) 用户数据报协议 UDP(数据传输的单位是用户数据报),不保证提供交付的可靠性。
- 网络层:网络层对传输层提供的数据包进行传送。用来处理网络上流动的数据包,使用无连接的 网际协议 IP 和许多种路由选择协议。网络层还有另一个任务就是选择合适的路由。
- 链路层(数据链路层):硬件上的处理均在链路层的范围内。如:操作系统、硬件设备的驱动、 网卡等。
4. TCP/IP 协议族分层有什么优点?
- 改动方便:如果仅使用一个协议,那么当其中的某一部分发生改变的时候,就需要把整体全部 替换掉。
- 设计简单:使用分层时候,仅需要替换改变的层的内容,只需要把每层之间的接口部分定义规 划好,那么各层内部就可以随意改变,更加灵活自由,在设计上也简单很多。
5. TCP/IP 分层与 OSI 分层对比
TCP/IP 协议族按层次分为以下 4 层:应用层、传输层、网络层和数据链路层。 OSI 则分为 7 层:应用层、表示层、会话层、运输层、网络层、数据链路层和物理层。
6. 什么是 TCP/IP 通信传输流?
通过 TCP/IP 协议通信方式,会遵循分层的顺序与对方进行通信 发送端的顺序是:应用层 -> 传输层 -> 网络层 -> 链路层; 接受端的顺序是:链路层 -> 网络层 -> 传输层 -> 应用层
7. TCP/IP 协议族中的 IP 协议
IP 网际协议处于网络层,用于传送数据包。它通过 IP 地址和 MAC 地址将数据包传送到指定的位 置。 其中 IP 地址指明了分配给节点的地址,可变化;MAC 地址指明了所属网卡的固定地址,不可变 化。 IP 之间的通信是依赖于 MAC 地址的,在网络通信的过程中,根据 ARP (一种地址解析协议)协 议,通过 IP 反查出对应 MAC 地址,再通过 MAC 地址来搜索中转目标。
8. 什么是持久连接?为什么要持久连接?
在使用 HTTP 协议建立通信之后,在没有提出要断开连接的时候,TCP 将一直保持连接状态。 持久连接好处是减少了 TCP 连接的重复建立和断开所造成的的额外开销,减轻了服务器端的负载。 而且减少重复建立连接的时间可以使 HTTP 请求和相应更早的结束,这样 Web 页面的加载速度也 相应提高了。
9. Cookie 的作用是什么?它是怎样工作的?
- Cookie 技术将 Cookie 写入请求信息和响应报文中,以此来控制和管理客户端的状态。
- Cookie 是通过由服务器端发出响应报文中的 SetCookie 的首部字段的信息,告知客户端需要 保存 Cookie 的。当客户端再次发送请求的时候,会在请求报文中加入 Cookie 值。服务器端在 接收到带有 Cookie 值的请求后,就会去查连接请求的来源,对比服务器存储的记录,然后得 到之前的状态信息。
10. HTTP 传输数据的方式有哪些?
HTTP 可以直接按照数据的原貌进行传输,也可以在传输的过程中对数据进行编码来提升传输 的速率。但是在提高传输速率的同时,编码操作会占用更多的 CPU 等资源。 可以采用压缩传输内容的编码方式提高传送速率。采用将主题编码分割成块,然后进行编码传 输的分块传输编码形式,这种操作可以提高用户的使用体验。 注意:通常报文主体等同于实体主体。但是如果在传输的过程中进行编码操作,实体主体的内容将 发生变化,会导致它和报文主体产生差异。 17. 怎样发送多种数据的多部分对象集
11. 基于 HTTP 的功能追加的协议有哪些?
- 消除 HTTP 瓶颈的 SPDY 协议
- 通过浏览器进行全双工通信的 WebSocket
- 成长了的 HTTP 2.0
- Web 服务器管理文件的 WebDAV