HTTP(超文本传输协议)
概念:
HTTP是用于万维网服务器传输超文本到本地浏览器的传送协议。
发展过程:
HTTP/0.9 1991~1996
HTTP/1.0 1996~1997
HTTP/1.1 1997~2015(当下仍然是主流)
HTTP/2.0 2015~
HTTP报文:
请求:
请求行
请求头
空行(表示请求体开始)
请求体
空行(表示请求体结束)
响应
响应行
响应头
空行(表示响应体开始)
响应体
空行(表示响应体结束)
状态码:
1** 一般信息
2** 成功
3** 重定向
4** 客户端错误
5** 服务器错误
HTTP与TCP
HTTP的底层是TCP,以寄信为例,HTTP相当于信件的内容,TCP相当于寄件信息。
连接、断开连接(TCP的三次握手、四次挥手)
名词解释:
SYN:表示建立一个连接,携带SYN的TCP报文段为同步报文段
FIN:告知对方本端要关闭连接
ACK:表示确认是否有效,携带ack标志的报文段也称确认报文段。ACK=1,有效;ACK=0,无效,要求重传数据。
三次握手:
- Client:通知 Server 我要连接,不含应用层数据(SYN 1 => Server)。
- Server:收到 Client 通知,同意连接,不含应用层数据(SYN+ACK 1 => Client)。
- Client:收到了 Server 的同意(ACK 1 => Server TCP)
注意:
Client:没收到重发,只接受最后一次发 SYN 的 SYN+ACK 回应,忽略其他回应。
Server:没收到重发,一直没收到 ACK,释放资源
四次挥手:
-
Client 我要关闭连接(FIN 1 => Server)
-
Server 收到确认,此时 Server 还未关闭(ACK 1 => Client)
-
Server 我要关了(FIN 1 => Client)
-
Client 收到确认(ACK 1 => Server)
HTTP与HTTPS
HTTP 协议通常承载于 TCP 协议之上,在 HTTP 和 TCP 之间添加一个安全协议层(SSL或TSL),就成了我们常说的 HTTPS。
HTTPS主要用到对称加密、非对称加密、证书,等技术进行客户端与服务器的数据加密传输,最终达到保证整个通信的安全性。
优缺点:
HTTPS采用非明文传输,但安全范围比较有效,证书需要购买,页面加载时间增加,耗电增加。
参考:
HTTP、HTTP2、HTTPS全解析
https://mp.weixin.qq.com/s?src=11×tamp=1618963956&ver=3021&signature=FQiNJJIgy1qXl4QaY2uZx9-nX2ZU1Th9m1bkwvw5HOAovJ87aA1VO9HEcSS4G9MLiskUIODG4ooQx3g4HO7-NGgzUDJxTk-e-vKxzLXo*vrgrh3i2S6B5mQZbwiE5s&new=1
一文搞懂HTTP协议(带图文)
https://blog.csdn.net/weixin_42709563/article/details/106433654?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161896481816780255222991%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161896481816780255222991&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-106433654.first_rank_v2_pc_rank_v29&utm_term=http%E5%8D%8F%E8%AE%AE