课程整体按照自上而下的方式组织,先从应用层协议讲起(如 HTTP),再介绍 SSL 协议,然后是 TCP 协议,最后是底层的 IP 协议。
学习应用层协议时,我们遵循时间线按照协议发展顺序来介绍,例如会先介绍上世纪九十年代初便大规模流行的 HTTP/1 协议,再介绍 2011 年出现的 WebSocket 协议,再介绍 2015 年出现的 HTTP/2 协议。
在每一部分课程的学习中,通常按照先总体再部分的原则,这样你可以有自顶而下的结构感。比如:在 HTTP 协议中,我们会先介绍 REST 架构,从顶层设计上再来介绍每个场景下 HTTP 的细节。
另外,将知识内化为技能需要大量的练习,而抓包工具可以帮助我们在现实世界中的各种网络环境中抓取多样化的报文进行练习,这个课程我们会紧密围绕抓包实践来深入理解各种 Web 协议。对于抓包工具的介绍,将遵循即用即学的原则,需要用什么功能,我就讲什么功能,学完整个课程,你不光学会了各种协议,还能学会各种抓包工具的使用,让你在今后的工作中如虎添翼。
https://gitee.com/geektime-geekbang/geektime-webprotocol
作者回复: :-)
作者回复: 会少量涉及,例如4.10课
作者回复: 前2个协议不在这门课程的范围内。 web容器的设计思路其实是贯穿整个课程中的,所有谈到的协议问题,特别是前4部分课程都是web容器需要面对和解决的,比如爬虫、盗链就是防火墙要面对的,session则是应用层要面对的。有些课比如1.16课就会站在服务器端谈协议。
作者回复: 是的,但是双向通信并不是说支持从server主动向浏览器建立连接,而是说,连接建立后,不需要浏览器先发请求server才能响应,而是server先发响应。具体你可以看61课。
作者回复: 很高兴能对你有帮助!
作者回复: 用这门课的知识就可以分析移动端抓包了。大约第1部分倒数第2课介绍wireshark时有讲到,其实就是用操作系统建立wifi热点,移动端连该wifi,再用wireshark抓包
作者回复: websocket只能由http/1.1升级。 第3部分课程会介绍http2,以及简单介绍http3
作者回复: 哈哈
作者回复: 很好的补充,但实际上SSE仍然属于http/1.1的REST架构,即一个请求一个应答,服务器不能主动推送message,不像第2部分websocket、第3部分http2中的协议级推送功能。SSE其实用的是不定长包体的思路,可参见21课
作者回复: ip可以将报文通过路由器与交换机传递到主机上,而操作系统会按照端口把报文在主机内传递到进程上。传输层协议,如TCP或者UDP才含有端口,因此网络层之上的传输层专注于进程间通讯。