【网络】http 协议基础必考面试题,还不来看看 ~

历史回顾:html

【网络】HTTP + 通讯加密 + 认证机制 + 保护报文完整型 = HTTPS算法

简述下TCP的三次握手?浏览器

我:咱们能够谈恋爱吗? 她:能够的。 我: 那咱们谈恋爱吧。缓存

HTTP 疑问集合

1. 使用http协议的哪一个版本的是由服务器决定的吗?

CLICK ME

具体是双方协商,最终由服务器决定安全

2. 如何查看一个网站使用了http哪一个版本?

CLICK ME

network 中 表格中的 Protocol,现代网站可能使用多个http版本。服务器

3. http/1.1 还有哪些缺陷?

CLICK ME
  • 1.队尾阻塞
  • 2.对小文件传输效率低
  • 3.明文传输不安全
  • 4.每次header中都有传输头
  • 5.服务器不能主动推送数据到客户端

队尾阻塞问题只要传输层是TCP协议,就不会获得根本上的解决,http/2 利用流的机制很大程度上缓解了这个问题,http/3 传输层换了 UDP 才完全解决了这个问题。网络

4. http/1.1 的主要缺陷?

CLICK ME
  • 慢启动
  • 多个TCP链接竞争带宽
  • 队尾阻塞

5. 什么是多路复用,HTTP/2 是如何实现多路复用的?

CLICK ME

创建一个TCP链接多个文件传输,而且不限制文件个数。实现了资源的并行传输。数据结构

HTTP/2 在协议层添加了一个二进制分帧层用来实现多路复用。二进制分帧层把文件分红帧,对帧进行编号传输,到服务器端再组装,由服务器来决定要先返回什么。tcp

6. 基于二进制分帧层实现了哪些功能?

CLICK ME
  • 多路复用
  • 能够设置请求的优先级
  • 服务器推送
  • 头部压缩

7. 队头阻塞 - http请求阻塞?

CLICK ME

一个tcp链接能够用来处理多个http请求,当前的请求阻塞了,后面的请求也要等待,这是http请求阻塞。post

8. 队头阻塞 - TCP数据包阻塞?

CLICK ME

一个请求了index.html,这个文件比较大,分了几回传回来 1,2,3,4,5,若是是 2,3,4,5数据包传回来了,而 1 没传回来,那么TCP也不会把这个数据交到上层,还得等 1 回来,而后才能进行拼接,上传到上层,这是TCP数据包阻塞。

9. HTTP/2 下的全部资源请求都会通过 “二进制分帧层”吗?

CLICK ME

是的,由于二进制分帧层是添加到http/2协议里了。

10. http/2为何不必用雪碧图和资源文件合并了?

CLICK ME

http/2 的慢启动对传输效率的影响微乎其微,影响传输效率的主要是文件的大小。多张图片大小加在一块儿,都没有合并一张雪碧图大,那雪碧图反而让传输更慢了。资源文件合并也是一样的道理。

11. 慢启动次数问题?

CLICK ME

http/2一个域名,理想状况下使用一个TCP长链接,慢启动只须要启动一次;http1.1一个域名创建多个TCP链接,创建几个TCP就会有几回慢启动。

12. 什么是TLS,跟TCP有什么区别?

CLICK ME

TLS协议,用来建立加密通道须要的协商和认证。应用层(HTTP、FTP)协议传送的数据经过TSL协议时会被加密,从而保证通讯的私密性。

TCP是传输层协议,TLS是传输层安全协议。HTTPS才须要TLS协议,HTTP协议不须要,也就是说TLS协议不是必须的。

13. RTT?

CLICK ME

round trip time, 仅包括请求访问来回的时间,被称做网络延迟。

RTT = 传播时延(往返)+ 排队时延(路由器和交换机的) + 数据处理时延(应用程序的)

14. Cache 来缓存本地文件?

CLICK ME

http 请求中的缓存 cache 机制,资源缓存。Cookie 一般用来保持登陆状态,信息缓存。

15. 编码格式与文件传输的字节流之间有什么关系?

CLICK ME

字符流、字节流、二进制在 HTTP 协议传输的时候,请求头、响应头都是以ASCII文本方式传输的,可是传输内容(响应体)多是多种形式的,接受方处理数据的时候根据 Content-Type 制定的类型进行处理,响应头若 Transfer-Encoding 这个字段,用来指定传输的数据的编码转换的压缩方式。没有这个字段,就没编码压缩。

16. http/2中传输的优先级?

CLICK ME

有默认优先级,经过PRIORITY帧能够改变流的优先级。 具体默认优先级的规则,以及如何经过帧来改变流的优先级?会的大佬,在评论区留言讨论啊。

17. tcp为何是可靠的?

CLICK ME

TCP经历了三次握手、四次分手,网络通讯更安全。

18. 简述TCP 的三次握手?

CLICK ME 我:咱们能够谈恋爱吗? 他: 能够的。 我: 那咱们谈恋爱吧。

19. HTTP/2 首部压缩的实现原理

CLICK ME

HTTP 2.0使用了首部压缩技术,压缩算法使用HPACK。可以让报头更紧凑,更快速传输。HPACK 协议,其中原理是哈夫曼编码及索引表(数据结构内容)。

20. HTTPS是一个新的协议吗?

CLICK ME

HTTPS并非一个新的协议,一般 HTTP 直接和 TCP通讯,HTTPS先和安全层通讯,而后安全层再和 TCP 层通讯。也就是说 HTTPS 全部的安全核心都在安全层。它不会影响上下两层。

21. HTTPS的安全层是如何工做?

CLICK ME

对发起 HTTP 请求的数据进行加密操做和对接收到HTTP的内容进行解密操做。

以上思考沉淀主要来自于极客时间《浏览器工做原理和实战》之浏览器的网络。

最后

你们如何把站点升级到 http/2,都遇到了哪些坑?看到有不少的网站是多协议并存的,哪些资源请求走 http/1.1,哪些走 http/2 ?你们有把网站升级到 http/3 的吗,都遇到了哪些坑,欢迎在留言区告诉我。

相关文章
相关标签/搜索