Python 实战 · 从 0 到 1 搭建直播视频平台
Barry
某上市公司技术研发总监
3717 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
Python 实战 · 从 0 到 1 搭建直播视频平台
15
15
1.0x
00:00/00:00
登录|注册

32|全面解析HTTP:从HTTP/0.9到HTTP/3的演变

实现有序交付
解决多路复用丢包的线头阻塞问题
支持TLS 1.3加密传输
基于QUIC协议,提升性能和安全性
引入优先级和流控制机制
服务器推送资源到客户端缓存
使用Header压缩机制,降低开销
引入多路复用,解决队头阻塞问题
采用二进制格式,解析更高效
支持更多请求方法和Chunk transfer机制
添加Pipeline,优化性能
引入e-tags和Cache-control,优化缓存和过期策略
新增Host字段,支持多个域名
引入持久连接,减少TCP建立连接次数
存在队头阻塞和资源浪费问题
支持缓存机制和状态码
支持GET、POST、Head请求方法
引入请求头和响应头
只能传输HTML数据格式
实现简单,只有请求行
用于传输HTML超文本
保护用户隐私和数据安全
使用TLS/SSL加密通信
区别于HTTP的安全传输协议
HTTP/3.0
HTTP/2.0
HTTP/1.1
HTTP/1.0
HTTP/0.9
HTTPS
HTTP

该思维导图由 AI 生成,仅供参考

你好,我是 Barry。
从这节课开始,我们正式开启直播模块的学习。
在开发直播平台前,我们需要先学习 HTTP 相关技术。直播平台的核心功能就是基于网络传输实时音视频数据,而 HTTP 是用于在客户端和服务器之间传输数据的协议,它能优化数据传输效率、实现实时性和稳定性,保护用户隐私和数据安全,实现与服务器的交互和集成。
与此同时,网络知识也是一个技术人员的基本功,但是很多技术人员会忽视掉这一块的内容,在工作和面试中吃了很多的亏,所以这节课我们就以 HTTP 为切入点,系统梳理一下这部分内容。

初识 HTTP

HTTP 是一种用于传输超文本(如 HTML、XML、JSON 等)的应用层协议。它是互联网上最常用的协议之一。
因为网络协议是我们的必备知识,这里我也顺便说说其他的传输协议。
FTP,用来做文件传输的协议,使用客户端和服务器之间的连接来传输文件。
SMTP,用于发送电子邮件的协议,它使用客户端和服务器之间的连接来传输邮件。
SSH,这是用于远程登录和管理计算机的协议,它使用客户端和服务器之间的安全连接来传输数据。
HTTP 的发展历程从 20 世纪 80 年代开始算起,当时互联网还处于发展的早期阶段。在 HTTP 的早期版本中,它主要用来在客户端和服务器之间传输静态文本和图像文件。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

HTTP协议的演进历程从HTTP/0.9到HTTP/3经历了多个阶段的发展和优化。HTTP/1.0引入了请求头和响应头、支持GET、POST、Head请求方法以及缓存机制等重要变革。然而,HTTP/1.0仍存在一些核心问题,如队头阻塞和单一域名支持。随后,HTTP/1.1引入了持久连接、Host字段、e-tags和Cache-control等优化,但仍未充分解决宽带利用率和队头阻塞问题。HTTP/2.0则采用了二进制格式、多路复用、Header压缩机制和服务器推送等新特性,以提高效率和性能。最新的HTTP/3则采用了QUIC协议,通过UDP传输数据,解决了TCP传输中的队头阻塞问题,进一步提高了网络传输效率和性能。HTTP/3的核心目标是提升性能、加快响应速度、保障交互安全性。HTTP/3的核心是QUIC协议,它是基于UDP的协议,这代表着在传输效率上相比之前的版本有了大幅提升。HTTP 3.0 还支持更强的安全性,支持使用TLS 1.3协议进行加密和保护数据传输。在解决多路复用丢包的线头阻塞问题方面,QUIC保留了HTTP2.0多路复用的特性。另外,HTTP/3还实现了有序交付。总的来说,HTTP协议的不断演进和优化,使其成为互联网最常用的协议之一,为网络传输提供了更高效、更稳定和更安全的解决方案。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Python 实战 · 从 0 到 1 搭建直播视频平台》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • peter
    请教老师几个问题: Q1:Python开发的网站,服务器可以用tomcat吗? Q2:Python开发的网站,可以用docker等虚拟机部署吗? Q3:http传XML或JSON,是把XML或JSON放到消息体中吗?什么场景中会用http来传XML或JSON?(我头脑中固定印象就是传html的,认识有局限) Q4:二进制格式与文本格式的区别? 文中提到“HTTP/2 采用二进制格式而非文本格式”,不是很理解。文本格式最后不也是要变成二进制传输吗? Q5:host怎么理解? Host难道是可以指明多个服务器吗? Q6:HTTP3用UDP,丢包怎么解决?

    作者回复: Q1:Python开发的网站可以使用Tomcat作为服务器。不过,通常Python开发使用Nginx、Apache作为服务器多一点。 Q2:是的,Python开发的网站可以使用Docker等虚拟机进行部署。 Q3:当通过HTTP传输XML或JSON时,通常是将它们放在HTTP消息的请求体或响应体中。HTTP协议支持传输各种数据类型,包括文本、二进制等。在Web开发中,经常使用HTTP传输XML或JSON,以便在不同的应用程序之间交换数据。 Q4:二进制格式和文本格式在HTTP/2中都有使用。在HTTP/2中,可以使用二进制格式来压缩数据,以减少传输数据量,提高性能。而文本格式通常用于表示文本数据,例如HTML、JSON、XML等。虽然二进制格式最终在传输时需要转换成二进制形式,但它们在处理和存储数据时具有更高的效率和性能。 Q5:在HTTP中,"Host"头字段是用于指定正在请求的服务器名称和端口号。它可以用于指定多个服务器,以便客户端可以根据主机名来发送请求。在多域名支持的场景中,可以通过Host头字段来指定不同的服务器,以便同一个IP地址上运行多个域名,这个课程中我有详细说过。 Q6:虽然HTTP3基于UDP协议,但UDP本身是无连接的协议,可能出现数据包丢失的情况。为了解决这个问题,HTTP/3采用了流控制和重传机制来确保数据的可靠传输。同时,HTTP/3还支持流优先级和流量控制等特性,以确保高优先级的请求能够优先处理,从而避免丢包对用户体验的影响。第6个问题可能其他同学也有疑问,这里统一答复。

    2023-07-06归属地:北京
  • coderHOW
    自己没有总结过,老师帮总结很完全,很硬核。 对于http和https区别,就是一般使用的4层模型就到了5层模型,原来的http和tcp直接握手的变为http和tcp之间加了一个ssl/tls层,专门作为加密认证等,就不会改变原来的层原有的作用,我感觉就是http加了一层装饰器

    作者回复: 感谢同学对课程内容的赞美,你的总结非常的不错,对于你的总结我可以补充一条,HTTPS不仅仅是一个简单的加密和认证层,而是一套完整的安全协议,HTTPS协议在实现过程中会进行更多的安全措施,例如身份验证、数据完整性保护等。我们的内容可以组合。期待你下次分享,我们一起加油!!!

    2023-07-05归属地:广东
  • Forest
    你觉得 HTTP 和 HTTPS 存在哪些区别? ------------------------------- 都是用于网络上传输数据的两种协议; 区别: 安全:HTTP 传输的数据是明文的;HTTPS 使用 SSL 或 TLS 协议对数据进行加密。HTTPS 使用证书对进行身份验证,确保建立的连接是安全的 端口:HTTP 使用 80 端口进行通信,HTTPS 使用 443 端口进行通信 数据完整:HTTPS 提供了数据完整性的保护,通过使用加密算法和证书的加持,可以有效的确保数据在传输过程中没有被篡改

    作者回复: 总结的非常全面,为你点赞,继续加油,希望你在学习过程中多多总结,多多分享,我们一起加油。

    2023-07-05归属地:四川
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部