Web 协议详解与抓包实战
陶辉
智链达 CTO,前阿里云高级技术专家
43211 人已学习
新⼈⾸单¥68
课程目录
已完结/共 121 讲
第一章:HTTP/1.1协议 (38讲)
时长 05:53
时长 06:57
Web 协议详解与抓包实战
登录|注册
留言
11
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 13 | HTTP的正确响应码
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 内容综述
03 | 浏览器发起HTTP请求的典型场景
04 | 基于ABNF语义定义的HTTP消息格式
05 | 网络为什么要分层:OSI模型与TCP/IP模型
06 | HTTP解决了什么问题?
07 | 评估Web架构的七大关键属性
08 | 从五种架构风格推导出HTTP的REST架构
09 | 如何用Chrome的Network面板分析HTTP报文
10 | URI的基本格式以及与URL的区别
11 | 为什么要对URI进行编码?
12 | 详解HTTP的请求行
13 | HTTP的正确响应码
14 | HTTP的错误响应码
15 | 如何管理跨代理服务器的长短连接?
16 | HTTP消息在服务器端的路由
17 | 代理服务器转发消息时的相关头部
18 | 请求与响应的上下文
19 | 内容协商与资源表述
20 | HTTP包体的传输方式(1):定长包体
21 | HTTP包体的传输方式(2):不定长包体
22 | HTML form表单提交时的协议格式
23 | 断点续传与多线程下载是如何做到的?
24 | Cookie的格式与约束
25 | Session及第三方Cookie的工作原理
26 | 浏览器为什么要有同源策略?
27 | 如何“合法”地跨域访问?
28 | 条件请求的作用
29 | 缓存的工作原理
30 | 缓存新鲜度的四种计算方式
31 | 复杂的Cache-Control头部
32 | 什么样的响应才会被缓存
33 | 多种重定向跳转方式的差异
34 | 如何通过HTTP隧道访问被限制的网络
35 | 网络爬虫的工作原理与应对方式
36 | HTTP协议的基本认证
37 | Wireshark的基本用法
38 | 如何通过DNS协议解析域名?
39 | Wireshark的捕获过滤器
40 | Wireshark的显示过滤器
41 | Websocket解决什么问题
42 | Websocket的约束
43 | WebSocket协议格式
44 | 如何从HTTP升级到WebSocket
45 | 传递消息时的编码格式
46 | 掩码及其所针对的代理污染攻击
47 | 如何保持会话心跳
48 | 如何关闭会话
49 | HTTP/1.1发展中遇到的问题
50 | HTTP/2特性概述
51 | 如何使用Wireshark解密TLS/SSL报文?
52 | h2c:在TCP上从HTTP/1升级到HTTP/2
53 | h2:在TLS上从HTTP/1升级到HTTP/2
54 | 帧、消息、流的关系
55 | 帧格式:Stream流ID的作用
56 | 帧格式:帧类型及设置帧的子类型
57 | HPACK如何减少HTTP头部的大小?
58 | HPACK中如何使用Huffman树编码?
59 | HPACK中整型数字的编码
60 | HPACK中头部名称与值的编码格式
61 | 服务器端的主动消息推送
62 | Stream的状态变迁
63 | RST_STREAM帧及常见错误码
64 | 我们需要Stream优先级
65 | 不同于TCP的流量控制
66 | HTTP/2与gRPC框架
67 | HTTP/2的问题及HTTP/3的意义
68 | HTTP/3: QUIC协议格式
69 | 七层负载均衡做了些什么?
70 | TLS协议的工作原理
71 | 对称加密的工作原理(1):XOR与填充
72 | 对称加密的工作原理(2):工作模式
73 | 详解AES对称加密算法
74 | 非对称密码与RSA算法
75 | 基于openssl实战验证RSA
76 | 非对称密码应用:PKI证书体系
77 | 非对称密码应用:DH密钥交换协议
78 | ECC椭圆曲线的特性
79 | DH协议升级:基于椭圆曲线的ECDH协议
80 | TLS1.2与TLS1.3 中的ECDH协议
81 | 握手的优化:session缓存、ticket票据及TLS1.3的0-RTT
82 | TLS与量子通讯的原理
83 | 量子通讯BB84协议的执行流程
84 | TCP历史及其设计哲学
85 | TCP解决了哪些问题
86 | TCP报文格式
87 | 如何使用tcpdump分析网络报文
88 | 三次握手建立连接
89 | 三次握手过程中的状态变迁
90 | 三次握手中的性能优化与安全问题
91 | 数据传输与MSS分段
92 | 重传与确认
93 | RTO重传定时器的计算
94 | 滑动窗口:发送窗口与接收窗口
95 | 窗口的滑动与流量控制
96 | 操作系统缓冲区与滑动窗口的关系
97 | 如何减少小报文提高网络效率
98 | 拥塞控制(1):慢启动
99 | 拥塞控制(2):拥塞避免
100 | 拥塞控制(3):快速重传与快速恢复
101 | SACK与选择性重传算法
102 | 从丢包到测量驱动的拥塞控制算法
103 | Google BBR拥塞控制算法原理
104 | 关闭连接过程优化
105 | 优化关闭连接时的TIME-WAIT状态
106 | keepalive 、校验和及带外数据
107 | 面向字节流的TCP连接如何多路复用
108 | 四层负载均衡可以做什么
109 | 网络层与链路层的功能
110 | IPv4分类地址
111 | CIDR无分类地址
112 | IP地址与链路地址的转换:ARP与RARP协议
113 | NAT地址转换与LVS负载均衡
114 | IP选路协议
115 | MTU与IP报文分片
116 | IP协议的助手:ICMP协议
117 | 多播与IGMP协议
118 | 支持万物互联的IPv6地址
119 | IPv6报文及分片
120 | 从wireshark报文统计中找规律
121 | 结课测试&结束语
本节摘要
登录 后留言

全部留言(11)

  • 最新
  • 精选
xiaolin777
老师,102和202都是说服务器已经接收到请求并仍在处理请求中。它们有什么区别吗?区别只是在于102适用于WebDAV,202可以表示异步请求吗?

作者回复: 他们意思相近,102是在RFC2518中定义用于WEBDAV的,而202是RFC7531中定义的。HTTP1.1中的RFC规范非常凌乱,所以HTTP2的目的之一就是理顺RFC规范,可以对比第3部分课程来理解第1部分课程

2019-05-17
2
3
吃饭饭
老师我想咨询个问题:当我使用这个指令 curl www.baidu.com -X OPTIONS -I,会显示 302,有的显示301,,这个错误码是不允许跨域导致的吗?

作者回复: 不是跨域,而是百度的/资源不允许OPTIONS方法访问。关于跨域,后续课程会演示,复杂请求需要先以OPTIONS方法判明访问权限。

2019-05-22
2
我行我素
老师,想请问下,如果想判断几百个域名是否可用,是将请求方式设置为HEAD是最优解?还有更快更节约资源的方式吗

作者回复: "可用"的定义不明确,如果是主机可达,用ICMP协议(例如ping命令)更节约资源。如果是进程可达,建立TCP连接却可。如果是提供HTTP服务,那就要看服务的实现方式了,尽量命中CACHE、尽量减少访问次数等都是优化目标

2019-05-14
2
1830
老师讲课的PPT可以分享一下吗,东西太多不好记

作者回复: 在这里:https://github.com/russelltao/geektime-webprotocol/tree/master/PDF%E8%AF%BE%E4%BB%B6

2021-04-28
bug maker🙄 wyc
put方法不是更新操作吗?为什么会返回201 created?

作者回复: PUT不只是更新资源,也可以创建资源。 RFC7231中对此有定义:The PUT method requests that the state of the target resource be created or replaced with the state defined by the representation enclosed in the request message payload. If the target resource does not have a current representation and the PUT successfully creates one, then the origin server MUST inform the user agent by sending a 201 (Created) response.

2019-11-22
logic
课程里面留的链接都无效了,点击404啦

作者回复: 哪个链接?

2019-07-07
2
       鸟人
请问有哪些不在规范中的响应吗?http不是协议么,协议应该是大家都遵守规范,为什么还有很多不在规范中的?

作者回复: HTTP的许多特性,是因为首先有人实现,渐渐用的人多了,RFC才把它纳入规范;其次,由于以上原因,导致描述HTTP/1的RFC文档特别多,让人难以遵守;再次,RFC文档定得太细了,这使得完全遵守规范的实现成本很高,所以很多组件并不完全遵守。

2019-06-05
码农Kevin亮
请教老师,我们平时工作中应该如何利用这些HTTP返回码呢?貌似我们在实际业务中几乎不关注这些返回码,除了4xx与5xx会导致业务异常外,其他的返回码都当它透明。尤其是在以前jquery的风格下,返回码都被封装在内部;现在普遍使用axios,才开始对HTTP返回码有所关注,但仍然不知道要如何利用,请老师指点迷津

作者回复: 主要应用场景是定位问题和性能优化

2019-05-17
悲秋病酒
工作中有时候会发生302劫持的问题,比如下载某个app,但却被定位到其他地方,下载了其他的app。这个问题不知道如何定位,请问老师这方面从抓包文件中可以看出来么?

作者回复: 可以看出来,301/302/303/307/308都会通过Location给浏览器新的访问地址,抓包可以看到。第29课有介绍

2019-05-15
Andy
老师您好,近期还会有新课程推出吗? 您目前的课程都买了,看完收获极大。非常感谢您!
2021-12-23
1
收起评论