Web协议详解与抓包实战
共121课时
428
首单特价
立即购买¥68VIP专属
领域会员免费
课程收录到: 前端工程师
本课程已被收录到以下领域会员卡中,购买会员卡后可免费学习
前端工程师
前端工程师的岗位需求量日渐增多,薪资也一路攀升。与此同时,前端的业务需求也呈现井喷式增长,各种应用场景层出不穷,但话题往往终止于大家最关心的“技术落地”,这时候工程实践的目的则不言而喻,他们要以最快的速度实现被市场认可的产品。本系列特邀前手机淘宝前端负责人程劭非(winter)、前百度前端架构师大圣等多位专家为你答疑解惑。
¥399.00 ¥1118.00
立即购买
查看详情首单特价
立即购买¥68VIP专属
领域会员免费
陶辉
陶辉,杭州智链达数据有限公司 CTO 兼联合创始人,前阿里云高级技术专家,腾讯云TVP,著有《深入理解 Nginx:模块开发与架构解析》一书。
陶辉曾任职于阿里巴巴、华为、腾讯、思科等知名企业,有近20年互联网一线工作经验,目前致力于 Linux 下高性能服务器的开发,以及分布式环境下海量数据存储的设计工作。
另外,陶辉也是极客时间视频课程《Nginx核心知识100讲》《Web协议详解与抓包实战》的作者。
课程概述
课程评价
互动留言
你将获得
- 深入理解常用 Web 协议;
- 快速定位和解决网络疑难杂症;
- 掌握常见抓包工具及报文分析方法;
- 熟悉 Web 协议的架构和设计原则。
课程介绍
「极客时间出品」
不少工程师在工作中多多少少都会遇到下面的困惑,比如:
- AJAX 跨域访问时总被浏览器的同源策略阻止,其背后的原理及符合其设计思想的解决方案是什么?
- 当我们维护 HTTPS 连接时,如果要优化 TLS/SSL 的卸载性能,应该从哪里入手?
- 定位问题时,发现本地的 TCP 连接状态中出现了FIN_WAIT、CLOSE_WAIT 或者 TIME_WAIT,都是什么原因引起的?应该怎样解决?
- 想要提升TCP连接的传输速度,可服务器上相关的系统参数多达数十个,究竟该怎么调整?
你会发现,这些问题其实都和 Web 协议密切相关。无论你是前后端工程师,还是运维测试,如果想面试更高的职位,或者要站在更高的角度去理解技术业务架构,并能在问题出现时快速、高效地解决问题,Web 协议一定是你绕不过去的一道坎。
因此,我们和陶辉老师合作推出了这门课程,旨在帮助你对各种常用 Web 协议有一个系统、深度的理解,在此基础上你将能够快速定位和解决工作中的各种网络疑难杂症,同时也为后续进行更复杂、难度更高的分布式系统架构设计等工作打下坚实的基础。
- 覆盖全面:内容包含 HTTP/1.1、HTTP/2、WebSocket、TLS/SSL以及TCP/IP等工作中常用的 Web 协议,将各个零散的知识点组织成体系化的内容。
- 抓包实战:不光有理论讲解,关键知识点会配合相应的抓包工具进行演示,帮你更轻松地搞懂各种协议的抽象细节,从而在工作中快速定位和解决各种网络疑难杂症。
- 自顶向下:先从应用层协议讲起(HTTP),让你带着具体问题去进行有针对性的学习,最后会逐步过渡到底层的 IP 协议,这样你就能从更高的层面理解Web协议的体系架构。
- 适用广泛:无论是前后端工程师、运维测试工程师还是架构师,只要是工作中经常要和网络打交道的技术人员,都可以学习这门课程。
课程目录
课程目录
- 01 | 课程介绍01 | 课程介绍5分53秒 试读
- 202 | 内容综述02 | 内容综述6分57秒 试读
- 303 | 浏览器发起HTTP请求的典型场景03 | 浏览器发起HTTP请求的典型场景7分31秒 试读
- 404 | 基于ABNF语义定义的HTTP消息格式04 | 基于ABNF语义定义的HTTP消息格式14分53秒
- 505 | 网络为什么要分层:OSI模型与TCP/IP模型05 | 网络为什么要分层:OSI模型与TCP/IP模型10分32秒
- 606 | HTTP解决了什么问题?06 | HTTP解决了什么问题?9分34秒
- 707 | 评估Web架构的七大关键属性07 | 评估Web架构的七大关键属性12分20秒
- 808 | 从五种架构风格推导出HTTP的REST架构08 | 从五种架构风格推导出HTTP的REST架构24分23秒
- 909 | 如何用Chrome的Network面板分析HTTP报文09 | 如何用Chrome的Network面板分析HTTP报文20分52秒
- 1010 | URI的基本格式以及与URL的区别10 | URI的基本格式以及与URL的区别11分11秒
- 1111 | 为什么要对URI进行编码?11 | 为什么要对URI进行编码?4分52秒
- 1212 | 详解HTTP的请求行12 | 详解HTTP的请求行11分3秒
- 1313 | HTTP的正确响应码13 | HTTP的正确响应码10分49秒
- 1414 | HTTP的错误响应码14 | HTTP的错误响应码13分17秒
- 1515 | 如何管理跨代理服务器的长短连接?15 | 如何管理跨代理服务器的长短连接?10分28秒
- 1616 | HTTP消息在服务器端的路由16 | HTTP消息在服务器端的路由4分42秒
- 1717 | 代理服务器转发消息时的相关头部17 | 代理服务器转发消息时的相关头部5分31秒
- 1818 | 请求与响应的上下文18 | 请求与响应的上下文8分11秒
- 1919 | 内容协商与资源表述19 | 内容协商与资源表述11分34秒
- 2020 | HTTP包体的传输方式(1):定长包体20 | HTTP包体的传输方式(1):定长包体9分41秒
- 2121 | HTTP包体的传输方式(2):不定长包体21 | HTTP包体的传输方式(2):不定长包体14分23秒
- 2222 | HTML form表单提交时的协议格式22 | HTML form表单提交时的协议格式19分26秒
- 2323 | 断点续传与多线程下载是如何做到的?23 | 断点续传与多线程下载是如何做到的?15分43秒
- 2424 | Cookie的格式与约束24 | Cookie的格式与约束11分35秒
- 2525 | Session及第三方Cookie的工作原理25 | Session及第三方Cookie的工作原理11分29秒
- 2626 | 浏览器为什么要有同源策略?26 | 浏览器为什么要有同源策略?11分30秒
- 2727 | 如何“合法”地跨域访问?27 | 如何“合法”地跨域访问?12分55秒
- 2828 | 条件请求的作用28 | 条件请求的作用15分14秒
- 2929 | 缓存的工作原理29 | 缓存的工作原理12分18秒
- 3030 | 缓存新鲜度的四种计算方式30 | 缓存新鲜度的四种计算方式10分41秒
- 3131 | 复杂的Cache-Control头部31 | 复杂的Cache-Control头部8分8秒
- 3232 | 什么样的响应才会被缓存32 | 什么样的响应才会被缓存11分25秒
- 3333 | 多种重定向跳转方式的差异33 | 多种重定向跳转方式的差异11分51秒
- 3434 | 如何通过HTTP隧道访问被限制的网络34 | 如何通过HTTP隧道访问被限制的网络4分57秒
- 3535 | 网络爬虫的工作原理与应对方式35 | 网络爬虫的工作原理与应对方式13分11秒
- 3636 | HTTP协议的基本认证36 | HTTP协议的基本认证6分52秒
- 3737 | Wireshark的基本用法37 | Wireshark的基本用法16分2秒
- 3838 | 如何通过DNS协议解析域名?38 | 如何通过DNS协议解析域名?14分20秒
第二章:WebSocket协议
- 139 | Wireshark的捕获过滤器39 | Wireshark的捕获过滤器11分25秒
- 240 | Wireshark的显示过滤器40 | Wireshark的显示过滤器9分25秒
- 341 | Websocket解决什么问题41 | Websocket解决什么问题9分1秒
- 442 | Websocket的约束42 | Websocket的约束6分32秒
- 543 | WebSocket协议格式43 | WebSocket协议格式6分6秒
- 644 | 如何从HTTP升级到WebSocket44 | 如何从HTTP升级到WebSocket7分29秒
- 745 | 传递消息时的编码格式45 | 传递消息时的编码格式9分29秒
- 846 | 掩码及其所针对的代理污染攻击46 | 掩码及其所针对的代理污染攻击7分42秒
- 947 | 如何保持会话心跳47 | 如何保持会话心跳2分58秒
- 1048 | 如何关闭会话48 | 如何关闭会话6分19秒
第三章:HTTP/2协议
- 149 | HTTP/1.1发展中遇到的问题49 | HTTP/1.1发展中遇到的问题8分21秒
- 250 | HTTP/2特性概述50 | HTTP/2特性概述7分25秒
- 351 | 如何使用Wireshark解密TLS/SSL报文?51 | 如何使用Wireshark解密TLS/SSL报文?8分3秒
- 452 | h2c:在TCP上从HTTP/1升级到HTTP/252 | h2c:在TCP上从HTTP/1升级到HTTP/28分44秒
- 553 | h2:在TLS上从HTTP/1升级到HTTP/253 | h2:在TLS上从HTTP/1升级到HTTP/25分37秒
- 654 | 帧、消息、流的关系54 | 帧、消息、流的关系6分25秒
- 755 | 帧格式:Stream流ID的作用55 | 帧格式:Stream流ID的作用8分36秒
- 856 | 帧格式:帧类型及设置帧的子类型56 | 帧格式:帧类型及设置帧的子类型7分42秒
- 957 | HPACK如何减少HTTP头部的大小?57 | HPACK如何减少HTTP头部的大小?5分39秒
- 1058 | HPACK中如何使用Huffman树编码?58 | HPACK中如何使用Huffman树编码?7分52秒
- 1159 | HPACK中整型数字的编码59 | HPACK中整型数字的编码5分52秒
- 1260 | HPACK中头部名称与值的编码格式60 | HPACK中头部名称与值的编码格式13分44秒
- 1361 | 服务器端的主动消息推送61 | 服务器端的主动消息推送8分2秒
- 1462 | Stream的状态变迁62 | Stream的状态变迁5分57秒
- 1563 | RST_STREAM帧及常见错误码63 | RST_STREAM帧及常见错误码5分5秒
- 1664 | 我们需要Stream优先级64 | 我们需要Stream优先级6分19秒
- 1765 | 不同于TCP的流量控制65 | 不同于TCP的流量控制9分6秒
- 1866 | HTTP/2与gRPC框架66 | HTTP/2与gRPC框架10分22秒
- 1967 | HTTP/2的问题及HTTP/3的意义67 | HTTP/2的问题及HTTP/3的意义9分28秒
- 2068 | HTTP/3: QUIC协议格式68 | HTTP/3: QUIC协议格式7分17秒
- 2169 | 七层负载均衡做了些什么?69 | 七层负载均衡做了些什么?9分53秒
第四章:TLS/SSL协议
- 170 | TLS协议的工作原理70 | TLS协议的工作原理4分34秒
- 271 | 对称加密的工作原理(1):XOR与填充71 | 对称加密的工作原理(1):XOR与填充6分19秒
- 372 | 对称加密的工作原理(2):工作模式72 | 对称加密的工作原理(2):工作模式6分3秒
- 473 | 详解AES对称加密算法73 | 详解AES对称加密算法7分11秒
- 574 | 非对称密码与RSA算法74 | 非对称密码与RSA算法6分39秒
- 675 | 基于openssl实战验证RSA75 | 基于openssl实战验证RSA6分41秒
- 776 | 非对称密码应用:PKI证书体系76 | 非对称密码应用:PKI证书体系9分56秒
- 877 | 非对称密码应用:DH密钥交换协议77 | 非对称密码应用:DH密钥交换协议8分13秒
- 978 | ECC椭圆曲线的特性78 | ECC椭圆曲线的特性5分37秒
- 1079 | DH协议升级:基于椭圆曲线的ECDH协议79 | DH协议升级:基于椭圆曲线的ECDH协议6分57秒
- 1180 | TLS1.2与TLS1.3 中的ECDH协议80 | TLS1.2与TLS1.3 中的ECDH协议7分28秒
- 1281 | 握手的优化:session缓存、ticket票据及TLS1.3的0-RTT81 | 握手的优化:session缓存、ticket票据及TLS1.3的0-RTT8分14秒
- 1382 | TLS与量子通讯的原理82 | TLS与量子通讯的原理5分16秒
- 1483 | 量子通讯BB84协议的执行流程83 | 量子通讯BB84协议的执行流程7分28秒
第五章:TCP协议
- 184 | TCP历史及其设计哲学84 | TCP历史及其设计哲学6分58秒
- 285 | TCP解决了哪些问题85 | TCP解决了哪些问题9分9秒
- 386 | TCP报文格式86 | TCP报文格式9分42秒
- 487 | 如何使用tcpdump分析网络报文87 | 如何使用tcpdump分析网络报文12分44秒
- 588 | 三次握手建立连接88 | 三次握手建立连接5分56秒
- 689 | 三次握手过程中的状态变迁89 | 三次握手过程中的状态变迁5分32秒
- 790 | 三次握手中的性能优化与安全问题90 | 三次握手中的性能优化与安全问题7分46秒
- 891 | 数据传输与MSS分段91 | 数据传输与MSS分段5分35秒
- 992 | 重传与确认92 | 重传与确认8分35秒
- 1093 | RTO重传定时器的计算93 | RTO重传定时器的计算7分27秒
- 1194 | 滑动窗口:发送窗口与接收窗口94 | 滑动窗口:发送窗口与接收窗口5分27秒
- 1295 | 窗口的滑动与流量控制95 | 窗口的滑动与流量控制8分55秒
- 1396 | 操作系统缓冲区与滑动窗口的关系96 | 操作系统缓冲区与滑动窗口的关系9分4秒
- 1497 | 如何减少小报文提高网络效率97 | 如何减少小报文提高网络效率8分50秒
- 1598 | 拥塞控制(1):慢启动98 | 拥塞控制(1):慢启动6分41秒
- 1699 | 拥塞控制(2):拥塞避免99 | 拥塞控制(2):拥塞避免4分9秒
- 17100 | 拥塞控制(3):快速重传与快速恢复100 | 拥塞控制(3):快速重传与快速恢复7分20秒
- 18101 | SACK与选择性重传算法101 | SACK与选择性重传算法6分0秒
- 19102 | 从丢包到测量驱动的拥塞控制算法102 | 从丢包到测量驱动的拥塞控制算法6分19秒
- 20103 | Google BBR拥塞控制算法原理103 | Google BBR拥塞控制算法原理11分13秒
- 21104 | 关闭连接过程优化104 | 关闭连接过程优化6分59秒
- 22105 | 优化关闭连接时的TIME-WAIT状态105 | 优化关闭连接时的TIME-WAIT状态5分15秒
- 23106 | keepalive 、校验和及带外数据106 | keepalive 、校验和及带外数据5分15秒
- 24107 | 面向字节流的TCP连接如何多路复用107 | 面向字节流的TCP连接如何多路复用5分43秒
- 25108 | 四层负载均衡可以做什么108 | 四层负载均衡可以做什么6分2秒
第六章:IP协议
- 1109 | 网络层与链路层的功能109 | 网络层与链路层的功能8分34秒
- 2110 | IPv4分类地址110 | IPv4分类地址6分54秒
- 3111 | CIDR无分类地址111 | CIDR无分类地址6分55秒
- 4112 | IP地址与链路地址的转换:ARP与RARP协议112 | IP地址与链路地址的转换:ARP与RARP协议8分21秒
- 5113 | NAT地址转换与LVS负载均衡113 | NAT地址转换与LVS负载均衡11分25秒
- 6114 | IP选路协议114 | IP选路协议10分46秒
- 7115 | MTU与IP报文分片115 | MTU与IP报文分片9分38秒
- 8116 | IP协议的助手:ICMP协议116 | IP协议的助手:ICMP协议8分37秒
- 9117 | 多播与IGMP协议117 | 多播与IGMP协议8分4秒
- 10118 | 支持万物互联的IPv6地址118 | 支持万物互联的IPv6地址9分38秒
- 11119 | IPv6报文及分片119 | IPv6报文及分片10分2秒
- 12120 | 从wireshark报文统计中找规律120 | 从wireshark报文统计中找规律15分21秒
- 13121 | 结课测试&结束语121 | 结课测试&结束语2分11秒