下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 13 | HTTP的正确响应码
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

Web协议详解与抓包实战

共121讲 · 121课时,约1100分钟
7333
免费
01 | 课程介绍
免费
02 | 内容综述
免费
03 | 浏览器发起HTTP请求的典型...
免费
04 | 基于ABNF语义定义的HTTP消...
免费
05 | 网络为什么要分层:OSI模...
06 | HTTP解决了什么问题?
07 | 评估Web架构的七大关键属...
08 | 从五种架构风格推导出HTTP...
免费
09 | 如何用Chrome的Network面...
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升级到WebSoc...
45 | 传递消息时的编码格式
46 | 掩码及其所针对的代理污染...
47 | 如何保持会话心跳
48 | 如何关闭会话
49 | HTTP/1.1发展中遇到的问...
50 | HTTP/2特性概述
51 | 如何使用Wireshark解密TLS...
52 | h2c:在TCP上从HTTP/1升...
53 | h2:在TLS上从HTTP/1升级...
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)...
72 | 对称加密的工作原理(2)...
73 | 详解AES对称加密算法
74 | 非对称密码与RSA算法
75 | 基于openssl实战验证RSA
76 | 非对称密码应用:PKI证书...
77 | 非对称密码应用:DH密钥交...
78 | ECC椭圆曲线的特性
79 | DH协议升级:基于椭圆曲线...
80 | TLS1.2与TLS1.3 中的EC...
81 | 握手的优化:session缓存...
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-W...
106 | keepalive 、校验和及带...
107 | 面向字节流的TCP连接如何...
108 | 四层负载均衡可以做什么
109 | 网络层与链路层的功能
110 | IPv4分类地址
111 | CIDR无分类地址
112 | IP地址与链路地址的转换...
113 | NAT地址转换与LVS负载均...
114 | IP选路协议
115 | MTU与IP报文分片
116 | IP协议的助手:ICMP协议
117 | 多播与IGMP协议
118 | 支持万物互联的IPv6地址
119 | IPv6报文及分片
120 | 从wireshark报文统计中找...
121 | 结束语
本节摘要
展开

精选留言(9)

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

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

    2
  • 2019-05-15
    目前在工作中经常会遇到过302重定向的场景:当点击一个广告时,抓包看,返回状态码为302,而且最终达到页的url和实际访问的url不同。后来询问对接方,原来点击广告触发实际访问的url是点击监控上报地址,然后再重定向到广告对应的达到页,这样可以提高数据统计精准度,防止作假。
    1
  • 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-07-07
    课程里面留的链接都无效了,点击404啦

    作者回复: 哪个链接?

    1
  • 请问有哪些不在规范中的响应吗?http不是协议么,协议应该是大家都遵守规范,为什么还有很多不在规范中的?

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

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

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

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

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

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

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

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

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