HTTP超文本传输协议详解

HTTP、 HTTPS、 HTTP/1.1、HTTP/2、HTTP/3

HTTP协议中最重要的知识就是TLS四次握手协议,涉及RSA和ECDHA两种混合加密算法

一、HTTP的知识

1.HTTP是什么?

答:
HTTP 是⼀个应用层里专⻔在「两点」之间「传输」⽂字、图⽚、⾳频、视频等「超⽂本」数据的「约定和
规范」。

两点:客户端和服务端,服务端和服务端

2.HTTP的请求方式

1)GET:请求从服务器获取资源(浏览网页)

2)POST:向URL指定的资源提交数据(文章留言)

请求报文和响应报文格式
HTTP超文本传输协议详解_第1张图片
URL:资源的路径

请求首部:
HOST:客户端发送请求时,⽤来指定服务器的域名。
Connection: ⽤于客户端要求服务器使⽤ TCP 持久连接,以便其他请求复⽤。
Accept:客户端请求的时候,可以使⽤ Accept 字段声明⾃⼰可以接受哪些数据格式。
Accept-Encoding: 说明客户端可以接受哪些数据压缩⽅法。

响应首部:
Content-Length:服务器在返回数据时,会有 Content-Length 字段,表明本次回应的数据⻓度
Content-Type: ⽤于服务器回应时,告诉客户端,本次数据是什么格式。
Content-Encoding: 表示服务器返回的数据使⽤了什么压缩格式

3.HTTP的状态码

答:HTTP的状态码,是表示客户端和服务端之间通信的状态。正常或错误,错误的具体原因等。
HTTP超文本传输协议详解_第2张图片

4.HTTP的优缺点

1)HTTP的优点

答:

2)HTTP的缺点

答:
无状态、明文传输

无状态:
HTTP一次只处理一次请求,每次请求都要建立TCP连接。虽然这可以大大节约服务器资源,但对于需要登录账户的网页来说,每浏览一次网页就需要进行一次登录,非常繁琐。

	为了解决HTTP的无状态缺点,在请求首部和响应首部加上Cookie信息,使得服务端能够记住当前客户端的状态,不需要频繁登录账户。

明文传输:
信息不加密,容易被窃取。

二、HTTPS相对HTTP,有了什么改进?

答:在HTTP的基础上,加上了TLS安全传输协议,对传输报文进行加密。

重点是加密的原理(TLS安全传输协议)以及加密算法(DH、RAS、ECDHA)

对称加密和非对称加密
对称加密:一把密钥,双方的密钥相同
非对称加密:两把密钥,服务器的私钥可以解开客户端利用公钥加密的报文。客户端的公钥可以解开服务端利用私钥加密的报文。
HTTP超文本传输协议详解_第3张图片

TLS协议的基本流程:先使用非对称加密生成会话秘钥,后续双方使用会话秘钥进行通信(对称加密)

客户端向服务器索要并验证服务器的公钥。
双⽅协商⽣产「会话秘钥」。
双⽅采⽤「会话秘钥」进⾏加密通信。

会话秘钥的生成,或者SSL/TLS 的「握⼿阶段」,涉及四次通信:

HTTP超文本传输协议详解_第4张图片

会话秘钥的生成,使用的加密算法有RSA算法、ECDHA算法。

RAS算法:不支持前向保密
具体握手过程参考

ECDHA算法:支持前向保密
具体握手过程参考

ECDHE算法相对RAS算法,使用相同bit位数的随机数,破解难度更大。

HTTPS的再优化:
HTTP超文本传输协议详解_第5张图片

三、HTTP/1.1相对HTTP,有了什么改进?

答:
优点是:
第一个是长连接,不需要像HTTP每发起一个请求,都要建立一次TCP连接。HTTP/1.1的长连接特点是,只要任意一端没有提出断开,保持TCP连接状态。
第二个是管道网络传输,客户端可以发起多个请求。

缺点是:
HTTP超文本传输协议详解_第6张图片

HTTP超文本传输协议详解_第7张图片

四、HTTP/2相对HTTP/1.1,有了什么改进?

答:
头部压缩:利用HPACK算法,客户端和服务器同时维护⼀张头信息表,所有字段都会存⼊这个表,⽣成⼀个索
引号,以后就不发送同样字段了,只发送索引号,这样就提⾼速度了

二进制格式:⽆需再将明⽂的报⽂转成⼆进制,⽽是直接解析⼆进制报⽂,这增加了数据传输的效率。

数据流( Stream ):每个请求或回应的所有数据包都标记着⼀个独⼀⽆⼆的编号,其中规定客户端发出的数据流编号为奇数, 服务器发出的数据流编号为偶数。客户端还可以指定数据流的优先级。优先级⾼的请求,服务器就先响应该请求。

多路复⽤:⼀个连接中并发多个请求或回应,⽽不⽤按照顺序⼀⼀对应。
移除了 HTTP/1.1 中的串⾏请求,不需要排队等待,也就不会再出现「队头阻塞」问题,降低了延迟,⼤幅度提⾼了连接的利⽤率。

服务器推送:改善了传统的「请求 - 应答」⼯作模式,服务不再是被动地响应,也可以主动向客户端发送消息。
HTTP超文本传输协议详解_第8张图片

五、HTTP/3相对HTTP/2,有了什么改进?

答:
HTTP超文本传输协议详解_第9张图片

HTTP超文本传输协议详解_第10张图片
HTTP超文本传输协议详解_第11张图片

你可能感兴趣的:(计算机,http,https,网络)