面试总结 http相关的题目

1、http1.0、http1.1、http2.0、http3.0与https之间的区别
(1)http1.0
特点
①http1.0是一种无状态、无连接的应用层的协议,它规定浏览器与服务器保持短暂的链接。
②浏览器每次请求都需要与服务器建立一次TCP链接,服务器处理完后立即关闭tcp链接,服务器不跟踪也不记录过去的请求(无状态)。
③这种无状态能够借助session/cookie做身份认证和状态记录。
缺点
①无法复用连接,每次发送请求,都需要进行一次tcp链接,tcp的连接释放过程比较费事,这种无状态的连接的特性会使网络的利用率特别低。
②队头阻塞,因为http1.0规定下一个请求必须在上一个请求响应到达前才能发送,如果上一个请求响应一直不到达,那么下一个请求就不发送。
③不支持断点续传,也就是每次都会传送全部的页面和数据。
(2)http1.1
特点
①http1.1增加了connection字段,对于同一个host,通过设置了Keep-Alive保持连接不断。避免每次客户端与服务器都要重复建立释放tcp连接,提高了网络利用率,如果客户端想要关闭tcp连接,可以通过在请求头中携带connection:false来告知服务器关闭请求。
②支持断点续传,通过在请求头中设置Range实现。
③可以使用管道传输,多个请求可以同时发送,但是服务器还是按照顺序先回应A,再回应B,要是前面的回应慢了,后面就会有许多请求排队等着,这称为队头阻塞。
(3)http2.0
特点
①二进制分帧,通过在应用层和传输层增加一个二进制分帧,突破了http1.1的限制,改进传输性能。
②多路复用,使用多个stream,每个stream又分帧传输,使一个tcp连接能够处理多个http请求。
③头部压缩,双方各自维护一个header的索引表,双方不用直接发送值,通过直接发送key缩减头部大小。
④服务器推送,服务器除了最初的请求响应外,服务器还可以额外向客户端推送资源,无需客户端明确的需求。
(4)http3.0
①基于google的quic协议,而quic协议是基于udp实现的。
②减少了tcp三次握手时间,以及tls握手时间。
③解决了http2.0中前一个stream丢包,导致后一个stream阻塞的问题。
④优化了重传策略,重传包和原包的编号不同,降低后续重传计算的消耗。
⑤链接迁移,不再用tcp四元组确定连接,而是用一个64位随机数来确定这个连接。
⑥对流量的控制更加的合适。

   以上http1.0/http1.1/http2.0/http3.0统称为http。
   那么http和https有什么区别呢?
   **https特点**
 ①  http和https都使超文本传输协议,https是加密传输的,https是在http下加入了ssl层,数据变成了加密模式,保证交换数据的隐私与安全。
 ②经过CA多重认证,包括域名管理认证,单位身份合法性确认,EV证书甚至可以直接在地址栏显示单位名称,提升用户体验。
 ③需要申请SSL证书来实现https,价格几百到上万,当然也有免费体验的。
 ④https的默认端口都是443的,而http的默认端口是80.
 ⑤隐私信息加密,防止流量劫持,而http能轻易被黑客或者同行进行流量劫持。‘
 ⑥当网站与第三方对接时,通常不允许http连接,比如小程序,抖音做广告等地方。

你可能感兴趣的:(http,http,面试,网络)