具体描述
				
				
					
编辑推荐
                                    本书附赠55个讲解视频,总价值149元 
体验全新AR扫图看视频模式 
精通HTTP协议,快速掌握Fiddler抓包和JMeter发包 
 
本书包括以下内容 
HTTP、HTTPS协议介绍; 
使用Fiddler捕获和修改HTTP包; 
Cookie机制和劫持攻击测试; 
手机抓包和弱网测试; 
重放HTTP包; 
JMeter模拟自动登录; 
JMeter压力测试。 
 
本书特色 
本书是关于HTTP协议、Fiddler抓包工具、JMeter发包工具的实践指南; 
包含很多有趣的实例,方便读者动手操作; 
讲解Fiddler工具的应用场景; 
有配套的理论和操作视频; 
图文并茂,方便读者理解。                 内容简介
   HTTP抓包利用Fiddler抓包工具来捕获HTTP数据包,然后对其进行重发、编辑等操作。HTTP抓包的用途非常广泛,主要用于Web开发调试、软件自动化测、接口自动化测试、性能测试和网络爬虫等方面。也用来检查网络安全。抓包也经常被用来进行数据截取等。 
本书主要围绕抓包展开。全书共有22章,着重介绍了HTTP协议、如何使用Fiddler对HTTP包进行抓取,如何对HTTP进行分析,以及使用JMeter等工具来发送HTTP包以实现软件的自动化测试。本书图文并茂,实例丰富,还有配套的视频教程,方便读者参考并动手实践。 
本书适合前端开发工程师、测试工程师、线上故障支持人员、接口开发人员和Web开发人员阅读,也适合对自动化测试感兴趣的人员阅读。     作者简介
   肖佳, VMware高级测试工程师,博客园知名博主(网名小坦克),撰写了很多软件开发和测试方面的技术文章;有10多年的软件开发测试经验,有丰富的手动测试和自动化测试经验;个人博客阅读量已经超过500万,乐于分享,善于用浅显的语言来讲解技术。     目录
   第 1章 HTTP协议和Fiddler抓包 1 
1.1 HTTP协议介绍 1 
1.1.1 什么是HTTP协议 1 
1.1.2 如何学习HTTP协议 1 
1.1.3 HTTP协议的工作原理 2 
1.2 Fiddler的介绍 2 
1.2.1 Fiddler的下载和安装 3 
1.2.2 Fiddler的基本界面 3 
1.2.3 Inspectors选项卡 4 
1.2.4 Web Sessions列表 5 
1.2.5 Fiddler捕获HTTP协议的 
数据包 5 
1.2.6 Fiddler设置开始捕获和 
停止捕获 6 
1.3 HTTP协议报文的结构 7 
1.3.1 HTTP请求报文的结构 7 
1.3.2 HTTP响应报文的结构 8 
1.3.3 Fiddler捕获博客主页, 
查看HTTP请求和HTTP 
响应报文 9 
1.4 Fiddler抓包的原理 10 
1.4.1 什么是代理服务器 10 
1.4.2 Fiddler的工作原理 11 
1.4.3 查看Internet选项代理 
设置 11 
1.4.4 Fiddler如何捕获Firefox 12 
1.4.5 Fiddler能捕获哪些设备的 
HTTP数据包 13 
1.4.6 解压HTTP响应 14 
第 2章 HTTPS协议和Fiddler抓包 15 
2.1 HTTP协议是不安全的 15 
2.2 Web通信如何做到安全 15 
2.3 什么是HTTPS 17 
2.4 Fiddler如何捕获HTTPS会话 17 
2.4.1 添加例外绕过HTTPS证件 
错误 18 
2.4.2 Firefox中安装证书 20 
2.4.3 Fiddler可以捕获HTTPS的 
握手验证请求 21 
2.4.4 查看Windows本地安装的 
证书 22 
第3章 HTTP协议请求方法和状态码 23 
3.1 URL详解 23 
3.1.1 URL格式 23 
3.1.2 URL中的锚点 24 
3.2 HTTP请求方法 24 
3.2.1 GET方法 25 
3.2.2 带参数的GET方法 26 
3.2.3 POST方法 26 
3.2.4 GET和POST方法的 
区别 28 
3.3 HTTP状态码 28 
3.3.1 什么是HTTP状态码 28 
3.3.2 状态码分类 28 
3.3.3 常见的状态码 29 
3.3.4 200(OK) 29 
3.3.5 204(No Content,没有 
内容) 30 
3.3.6 206(Partial Content,部分 
内容) 31 
3.3.7 301(Moved 
Permanently) 32 
3.3.8 302(Found) 33 
3.3.9 301和302的区别 33 
3.3.10 304(Not Modified) 34 
3.3.11 400(Bad Request) 34 
3.3.12 401(Unauthorized) 35 
3.3.13 403(Forbidden) 36 
3.3.14 404(Not Found) 36 
3.3.15 500(Internal Server 
Error) 36 
3.3.16 503(Server 
Unavailable) 38 
第4章 HTTP协议Header介绍 39 
4.1 HTTP Header介绍 39 
4.2 Fiddler查看HTTP请求Header 39 
4.2.1 Cache相关的Header 40 
4.2.2 Cookies 41 
4.2.3 Accept 41 
4.2.4 Accept-Encoding 41 
4.2.5 Accept-Language 41 
4.2.6 User-Agent 42 
4.2.7 实例:Fiddler修改User- 
Agent,伪装客户端 42 
4.2.8 Referer 43 
4.2.9 Connection 44 
4.2.10 Host 44 
4.3 Fiddler查看HTTP响应Header 44 
4.4 Fiddler查看和复制Header 45 
第5章 Web网页抓包和Fiddler 
修改包 46 
5.1 网页是如何打开的 46 
5.1.1 一个网页的组成 46 
5.1.2 打开一个网页,浏览器需要 
发送很多个请求 47 
5.1.3 用Fiddler查看一个Web页面 
打开的过程 47 
5.1.4 用Fiddler选择请求 48 
5.2 Web页面简单的性能测试 49 
5.3 使用Fiddler来查看响应 50 
5.4 Fiddler下断点,修改HTTP报文 51 
5.4.1 Fiddler中设置断点修改 
HTTP请求 51 
5.4.2 实例:Fiddler修改HTTP 
请求 52 
5.4.3 Fiddler中设置断点修改 
HTTP响应 53 
5.4.4 Fiddler修改网页的标题 54 
5.4.5 伪造Referer 55 
第6章 HTTP协议中的缓存 56 
6.1 缓存的概念 56 
6.2 缓存的优点 56 
6.3 Fiddler可以方便地查看缓存的 
Header 57 
6.4 如何判断缓存新鲜度 57 
6.5 通过最后修改时间来判断缓存 
新鲜度 58 
6.6 与缓存有关的Header 59 
6.7 ETag 60 
6.8 浏览器不使用缓存 61 
6.9 直接使用缓存,不去服务器 
验证 62 
6.10 如何设置IE不使用缓存 63 
6.11 公有缓存和私有缓存的区别 64 
第7章 HTTP协议压缩和URL Encode 65 
7.1 HTTP压缩的过程 65 
7.1.1 实例:Fiddler观察HTTP 
压缩 66 
7.1.2 内容编码类型 67 
7.1.3 压缩的好处 68 
7.1.4 Gzip的不足之处 68 
7.1.5 Gzip是如何压缩的 68 
7.1.6 HTTP请求也是可以 
编码的 68 
7.1.7 HTTP内容编码和HTTP 
压缩的区别 69 
7.2 URL Encode介绍 69 
7.2.1 查询字符串中包含汉字 69 
7.2.2 POST中的数据包含汉字 70 
7.3 Fiddler中的TextWizard 71 
第8章 Fiddler使用技巧 72 
8.1 Fiddler和其他抓包软件的比较 72 
8.2 Fiddler抓不到包应该怎么解决 73 
8.3 如何找到想抓的包 73 
8.4 Fiddler异常退出后无法上网 73 
8.5 Fiddler排序 74 
8.6 Fiddler中查询会话 74 
8.7 Fiddler中保存抓到的包 75 
8.8 Fiddler中编辑会话 75 
8.9 过滤会话 75 
8.10 常用快捷键 76 
8.11 QuickExec命令行的使用 77 
8.12 Fiddler比较会话的不同 78 
8.13 Fiddler插件 79 
8.13.1 JavaScript Formatter 79 
8.13.2 Gallery插件 79 
第9章 Fiddler前端快速调试 81 
9.1 如何在服务器上调试JavaScript 
文件 81 
9.2 Fiddler AutoResponder的工作 
原理 82 
9.3 Fiddler在线调试JavaScript文件 82 
9.4 浪漫的程序员 85 
9.5 替换网页中的图片 86 
第 10章 Fiddler的Script用法 89 
10.1 Fiddler Script介绍 89 
10.2 Fiddler Script Editor 90 
10.3 CustomRules.js中的主要方法 91 
10.4 Fiddler定制菜单 92 
10.5 修改Session在Fiddler的显示 
样式 92 
10.6 修改HTTP请求 93 
10.6.1 修改HTTP请求中的 
Cookie 93 
10.6.2 替换HTTP请求的Host 
地址 94 
10.6.3 修改HTTP请求中的 
Header 94 
10.6.4 修改HTTP请求中的 
Body 95 
10.7 修改HTTP响应 95 
10.8 读写txt文件 96 
10.9 使用正则表达式 96 
10.10 保存Session 97 
10.11 读取Session,并且使用Fiddler 
来发送 97 
第 11章 深入理解Cookie机制 98 
11.1 HTTP协议是无状态的 98 
11.2 会话机制 98 
11.3 Cookie机制 100 
11.4 Cookie是什么 100 
11.5 Cookie的作用 101 
11.6 抓包观察上海科技馆网站的 
登录 102 
11.7 Cookie的属性 103 
11.8 Cookie的分类 104 
11.9 Cookie保存在哪里 104 
11.10 使用和禁用Cookie 105 
11.11 网站自动登录的原理 106 
11.12 Cookie和文件缓存的区别 106 
11.13 Cookie泄露隐私 107 
第 12章 Fiddler实现Cookie劫持 
攻击 108 
12.1 截获Cookie冒充别人身份 108 
12.2 Cookie劫持的原理 108 
12.3 Cookie劫持实例介绍 109 
12.3.1 找到登录的Cookie 109 
12.3.2 浏览器中植入Cookie 111 
12.4 网站退出的作用 112 
第 13章 HTTP基本认证 113 
13.1 什么是HTTP基本认证 113 
13.1.1 路由器管理页面使用基本 
认证 114 
13.1.2 HTTP基本认证的优点 117 
13.1.3 HTTP基本认证的缺点 117 
13.1.4 使用TextWizard工具 117 
13.1.5 客户端的使用 117 
13.2 摘要认证 118 
第 14章 Fiddler手机抓包 119 
14.1 环境准备 119 
14.2 Fiddler截获手机原理图 119 
14.3 截获手机发出的HTTP包有什么 
作用 120 
14.4 手机抓包 120 
14.4.1 配置Fiddler允许“远程 
连接” 120 
14.4.2 获取Fiddler所在机器的 
IP地址 121 
14.4.3 手机上设置代理 
服务器 121 
14.4.4 测试Fiddler捕获手机 
发出的HTTP 123 
14.4.5 捕获手机上的HTTPS 123 
14.4.6 Apple设备需要使用插 
件制作新证书 123 
14.4.7 iOS设备安装证书方法 124 
14.4.8 Android设备安装证书 
方法一 125 
14.4.9 Android设备安装证书 
方法二 126 
14.4.10 测试Fiddler捕获手机的 
HTTPS 127 
14.5 设置过滤 127 
14.6 如何卸载证书 128 
14.7 手机抓包提醒 128 
第 15章 Fiddler发送HTTP请求 129 
15.1 Fiddler Composer发送HTTP 
请求 129 
15.1.1 Composer发送Get 
请求 129 
15.1.2 Composer的编辑模式 130 
15.1.3 Composer发送Post 
请求 130 
15.1.4 Composer编辑之前捕获的 
HTTP请求 131 
15.2 Fiddler重新发送HTTP请求 131 
15.2.1 Replay菜单 131 
15.2.2 简单的性能测试 132 
15.2.3 先编辑再发送 133 
15.3 安全测试之重放攻击 133 
15.3.1 重放攻击是怎么发生的 133 
15.3.2 重放攻击的危害 133 
15.3.3 重放攻击的解决方案 133 
15.3.4 APP验证码重放 134 
15.4 查找和登录相关的Cookie 136 
第 16章 Fiddler实现弱网测试 139 
16.1 什么是弱网 139 
16.2 弱网环境带来的问题 140 
16.3 弱网测试的目的 140 
16.4 弱网的场景 140 
16.5 Fiddler模拟网络延迟 140 
16.6 精确控制网速 141 
16.7 Fiddler模拟网络中断 142 
16.8 实例:Fiddler返回500状态码 142 
16.9 Fiddler模拟网络超时 143 
第 17章 自动化测试和接口测试 144 
17.1 自动化测试分类 144 
17.2 分层的自动化测试理念 144 
17.3 Web自动化测试的两种思路 146 
17.4 什么是接口测试 146 
17.5 接口测试工具 147 
17.6 Web原理 147 
17.7 Web自动化测试原理 148 
17.8 性能测试的原理 148 
17.9 APP的后台测试 149 
17.10 如何学习Web自动化测试和 
性能测试 149 
第 18章 JMeter工具使用介绍 151 
18.1 JMeter介绍 151 
18.2 JMeter的下载和运行 151 
18.3 创建测试任务 152 
18.4 添加HTTP请求 153 
18.5 实例:密码用MD5加密 154 
第 19章 JMeter天气接口自动化测试 160 
19.1 天气查询的例子 160 
19.2 天气查询网站抓包 160 
19.3 抓包分析 161 
19.4 获取城市地区代码 162 
 
19.5 处理JMeter中HTTP响应 
乱码 163 
19.6 添加验证点 164 
19.7 使用用户自定义变量 165 
19.8 正则表达式提取城市地区代码 166 
19.9 获取天气 167 
第 20章 JMeter中BeanShell的用法 169 
20.1 什么是BeanShell 169 
20.2 操作变量 169 
20.3 JMeter有哪些BeanShell 170 
20.4 BeanShell调用自己写的jar包 
进行MD5加密 171 
第 21章 自动登录禅道和自动开Bug 174 
21.1 HTTP Cookie管理器 174 
21.2 HTTP请求默认值 175 
21.3 禅道介绍和部署 175 
21.4 禅道操作和抓包分析 176 
21.4.1 第 一步,自动登录禅道 176 
21.4.2 第二步,创建一个新的 
Bug 181 
21.4.3 第三步,找到刚刚新建 
Bug的ID 184 
21.4.4 第四步,修改Bug状态为 
“已解决” 185 
21.4.5 第五步,关闭Bug 187 
21.4.6 总结 187 
第 22章 JMeter给网站做压力测试 188 
22.1 案例介绍 188 
22.2 压力测试的目的 188 
22.3 抓包分析Mozy网站的登录 
过程 189 
22.4 抓包分析 190 
22.5 实现Mozy登录 191 
22.6 简单的压力测试 193    
				
				
				
					《深入理解网络协议:从底层到应用》  一、 引言:重塑网络认知,洞悉数据流动之秘  在信息爆炸的时代,网络已成为我们生活中不可或缺的组成部分。无论是浏览网页、收发邮件,还是使用各类在线服务,其背后都离不开复杂精密的网络协议在默默运作。然而,大多数用户对这些协议的理解往往停留在“能用”的层面,对其工作原理、通信机制乃至潜在的安全风险知之甚少。  《深入理解网络协议:从底层到应用》旨在带领读者跨越表象,直击网络通信的核心。本书并非罗列枯燥的技术条文,而是以严谨的逻辑、丰富的案例,循序渐进地揭示网络协议的奥秘,帮助读者构建起一个清晰、完整的网络认知体系。从物理层信号的传递,到应用层服务的实现,本书将为您一一解析。我们相信,掌握了网络协议的精髓,您将不再是网络的被动使用者,而是能主动洞察、分析乃至优化网络通信的行家。  二、 内容精要:构建系统化网络知识框架  本书以分层模型为基础,详细阐述了TCP/IP协议族中各个核心协议的运作原理、功能特性以及相互之间的协作关系。全书内容可大致划分为以下几个关键部分:  第一部分:网络基础与底层协议     物理层与数据链路层:        信号与介质: 深入探讨不同传输介质(如铜线、光纤、无线电波)的物理特性,以及它们如何承载数据信号。介绍信号的编码、调制解调技术,以及电磁干扰、信号衰减等物理限制。        网络接口与MAC地址: 详解以太网(Ethernet)等局域网技术。阐述MAC地址的唯一性与分层结构,以及ARP(地址解析协议)如何在IP地址和MAC地址之间建立映射关系。        交换与帧: 讲解数据链路层协议如何封装数据为“帧”(Frame),以及交换机(Switch)如何根据MAC地址进行帧的转发,实现局域网内的高效通信。介绍VLAN(虚拟局域网)的概念及其作用。        差错控制与流量控制: 探讨数据链路层如何通过校验和(Checksum)等机制检测和纠正传输错误,以及滑动窗口(Sliding Window)等技术如何实现基本的流量控制,避免数据丢失。     网络层:IP协议的灵魂        IP地址与子网划分: 详尽解析IPv4和IPv6的地址结构、类别划分、私有地址与公有地址的区别。深入讲解子网划分(Subnetting)的原理与实践,以及CIDR(无类别域间路由)如何优化IP地址分配。        IP数据包的封装与转发: 剖析IP数据包的头部结构,包括源IP、目标IP、TTL(生存时间)等关键字段的含义。详细阐述路由器(Router)如何根据IP地址查找路由表,进行数据包的转发,实现跨网络的通信。        路由协议: 介绍静态路由与动态路由的概念。深入讲解RIP(路由信息协议)、OSPF(开放最短路径优先)、BGP(边界网关协议)等主流动态路由协议的工作原理、适用场景以及它们如何协同工作,构建起互联网的路由骨干。        ICMP协议: 详细介绍ICMP(Internet Control Message Protocol)协议,包括其消息类型(如Echo Request/Reply, Destination Unreachable, Time Exceeded等),以及ping、traceroute等工具如何利用ICMP实现网络诊断和故障排除。  第二部分:传输层:可靠与高效的桥梁     TCP协议:面向连接的可靠通信        TCP的三次握手与四次挥手: 详细解析TCP建立连接(三次握手)和断开连接(四次挥手)的完整过程,以及每个步骤中数据包的交换细节,理解其如何保证连接的可靠性。        TCP的可靠性机制: 深入讲解TCP如何实现可靠传输,包括序列号(Sequence Number)、确认应答(Acknowledgment Number)、超时重传(Timeout Retransmission)、累积确认(Cumulative Acknowledgment)等机制。        TCP的流量控制与拥塞控制: 重点阐述TCP的滑动窗口机制如何实现流量控制,避免接收方过载。详细讲解拥塞控制算法(如慢启动、拥塞避免、快重传、快恢复)的工作原理,以及TCP如何动态调整发送速率以应对网络拥塞,保证网络的整体性能。        TCP端口与套接字: 介绍TCP端口的概念,以及进程如何通过套接字(Socket)进行通信。     UDP协议:面向无连接的高速通道        UDP的特点与应用: 讲解UDP(User Datagram Protocol)的无连接、不可靠、低开销的特性,以及它适用于对实时性要求高、对少量丢包容忍度高的场景,如DNS查询、音视频流媒体、在线游戏等。        UDP数据报文: 分析UDP数据报文的头部结构。  第三部分:应用层:丰富多彩的网络服务     DNS协议:域名解析的幕后英雄        域名系统结构: 介绍DNS(Domain Name System)的层级结构(根域名服务器、顶级域名服务器、权威域名服务器等)。        DNS查询过程: 详细解析递归查询(Recursive Query)和迭代查询(Iterative Query)的流程,以及DNS缓存的作用。        DNS记录类型: 讲解A记录、AAAA记录、CNAME记录、MX记录、NS记录等常见DNS记录类型的含义与用途。     HTTP协议:Web世界的基石        HTTP的版本与演进: 回顾HTTP/1.0, HTTP/1.1, HTTP/2, HTTP/3(QUIC)等主要版本的演进历程,以及它们在性能、安全性、功能上的改进。        HTTP请求与响应: 详细解析HTTP请求报文(请求方法、URL、请求头、请求体)和响应报文(状态码、响应头、响应体)的构成要素,以及常见请求方法(GET, POST, PUT, DELETE等)和状态码(2xx, 3xx, 4xx, 5xx)的含义。        HTTP头部详解: 深入剖析Cookie, Cache-Control, User-Agent, Referer等关键HTTP头部字段的作用,以及它们如何影响浏览器行为和服务器响应。        HTTPS与TLS/SSL: 讲解HTTPS如何通过TLS/SSL(Transport Layer Security/Secure Sockets Layer)协议为HTTP通信提供加密和身份验证,保障Web安全的原理,包括证书的概念、握手过程等。     其他重要应用层协议:        FTP(文件传输协议): 介绍FTP的控制连接与数据连接,以及文件上传下载的基本流程。        SMTP, POP3, IMAP(电子邮件协议): 阐述电子邮件发送、接收的完整流程,以及各协议的角色。        SSH(安全外壳协议): 讲解SSH如何实现安全的远程登录和文件传输。        DHCP(动态主机配置协议): 介绍DHCP如何自动分配IP地址,简化网络配置。  第四部分:网络安全与故障排查     网络安全基础:        常见网络攻击: 介绍DDoS(分布式拒绝服务)、ARP欺骗、SQL注入、XSS(跨站脚本攻击)等常见网络攻击的原理和防范措施。        防火墙与入侵检测系统: 讲解防火墙的工作原理,以及入侵检测系统(IDS)和入侵防御系统(IPS)的作用。    网络故障排查工具与技巧:        命令行工具: 深入讲解ping, traceroute, nslookup, netstat, tcpdump等常用网络诊断命令的使用方法和分析技巧。        流量分析: 结合抓包工具(如Wireshark)的原理,指导读者如何捕获网络流量,分析TCP/IP协议栈的通信过程,定位网络问题。  三、 学习价值与读者群体  《深入理解网络协议:从底层到应用》适合以下读者群体:     计算机科学与技术、网络工程等相关专业的学生: 为您打下坚实的理论基础,理解课程知识的实践意义。    软件开发者与架构师: 帮助您深入理解应用程序与网络交互的底层机制,优化应用性能,设计更 robust 的网络服务。    网络工程师与系统管理员: 提升您的网络故障诊断与排查能力,更高效地维护和管理网络。    网络安全从业者: 为您提供理解网络攻击与防御的坚实基础,洞察潜在的安全漏洞。    对网络技术充满好奇的爱好者: 带领您探索互联网世界的奥秘,理解日常网络操作背后的原理。  四、 本书特色     理论与实践相结合: 每一个协议的讲解都辅以清晰的图示和生动的案例,帮助读者理解抽象的概念。    由浅入深,循序渐进: 从基础的物理层概念,逐步深入到复杂的应用层协议,确保读者能够平滑过渡。    强调协议之间的关联性: 详细阐述不同协议层级之间如何协同工作,构建起一个完整的通信体系。    注重实际应用: 引导读者利用各种工具分析网络流量,将理论知识应用于解决实际的网络问题。    语言通俗易懂,逻辑清晰: 避免使用过于晦涩的专业术语,用平实的语言解释复杂的概念,力求逻辑严谨,易于理解。  五、 结语  网络协议是现代信息社会的基石。深入理解这些协议,不仅能够帮助我们更好地利用现有技术,更能激发我们对未来网络发展的思考与创新。《深入理解网络协议:从底层到应用》将是您通往网络技术深层世界的绝佳向导,帮助您构建起一套系统、扎实的网络知识体系,让您在数字化浪潮中游刃有余。