简述HTTP1.0、1.1、2.0的主要区别?
HTTP头Connection: keep-alive是什么意思?解决了什么问题?
描述常见的HTTP请求方法与使用场景?
常见的状态码404、503、504分别表示什么意思?怎么定位?
HTTP/0.9:HTTP协议原型、设计缺陷、只支持GET方法、不支持多媒体内容、只有HTML对象 HTTP/1.0:广泛使用、增加多种方法、支持多媒体对象、无连接、无状态 HTTP/1.1:长连接、管道化、缓存处理、断点传输 HTTP/2.0:性能进一步提升、二进制分帧、多路复用、首部压缩、服务端推送 HTTP/3.0:QUIC (Quick UDP Internet Connections), 快速 UDP 互联网连接。QUIC是基于UDP协议的。两个主要特性:线头阻塞(HOL)问题的解决更为彻底、切换网络时的连接保持 通俗来讲:将tcp取消掉,因为tcp依然是顺序发送,顺序接收的,依然有队头堵塞问题,取消tcp才能解决队头堵塞问题
Keep-Alive 优点:Keep-Alive模式更加高效,因为避免了连接建立和释放的开销。缺点:长时间的Tcp连接容易导致系统资源无效占用,浪费系统资源。
多路复用通常表示在一个信道上传输多路信号或数据流的过程和技术。通过使用多路复用,通信运营商可以避免维护多条线路,从而有效地节约运营成本
二进制分帧是基础,通信单位为帧 多请求并行不依赖多TCP连接 并行在一个TCP连接交互多种类型信息
通过哈夫曼编码进行压缩
服务端“未卜先知” 服务端主动推送资源
2.应答头:
请求举例:
POST https://coding.imooc.com HTTP/1.1
Accept-Encoding:gzip
Accept-Language:zh-CN
{
"sort":0,
"unlearn":0,
"page":2
}
请求方法:HTTP请求的本质是对服务器资源进行操作的过程(增删改查+系统功能),通过定义不同方法实现不同操作是清晰并且是必要的。
幂等操作:幂等操作只任意多次执行所产生的影响均与一次执行的影响相同。
幂等函数:幂等函数是指可以使用相同参数重复执行,并能获得相同结果的函数。
GET、HEAD、TRACE、OPTIONS都是幂等操作
PUT、POST、DELETE都要取决于后台实现
从客户端角度排查问题
从服务端角度排查问题