12个HTTP客户端和Web调试代理工具
开发人员和系统管理员的基本技能之一是调试应用程序、API或服务,并且了解正确的工具是救命稻草。
什么是调试?
如果你看过犯罪剧,那么调试的概念对你来说并不陌生。调试是一个过程,它涉及很多策略。它是在程序中找到和解决问题和错误的系统性过程。
此外,调试还可以解决可能影响软件或网页应用程序正确运行的所有问题。调试过程主要涉及尝试重现问题。
因此,需要发送一个API请求。现在问题就出现了。大多数浏览器都会阻止您更改原始头,并限制URL的大小。
换句话说,为了重现问题,您可能需要进行一些HTTP操作。这将需要一些强大的调试工具。
调试过程的所有组件或策略包括:
- 交互式调试
- 控制流分析
- 单元测试
- 集成测试
- 日志文件分析
- 监控
- 内存转储
- 性能分析
有趣的是,一些HTTP客户端(即Web浏览器)有内置的Web开发工具。这些工具可用于调试API。有了这个想法,就不必编写自己的调试工具。
什么是HTTP客户端?
假设您想构建一个利用HTTP协议进行分布式通信或HTTP感知的系统,比如Web应用程序。那么您可能需要查看HTTP客户端组件。
HTTP或超文本传输协议是您在输入URL时每次在Web上进行通信或传输数据的原因。它是一种使浏览互联网成为可能的应用协议。
现在,HTTP客户端是一个以HTTP文本格式向服务器发送请求的系统,并从同一服务器接收响应。
了解HTTP客户端和HTTP服务器之间的区别是很重要的。
HTTP客户端和服务器的区别
虽然HTTP客户端通常是Web浏览器或实用程序,但HTTP服务器充当应用服务器的代理。
简单来说,您的智能手机、电视、PlayStation或任何可以连接到互联网的设备可能都在使用HTTP客户端。
类似地,HTTP服务器是HTTP客户端连接到的网络计算机。它们之间的关系更像是对话。HTTP客户端发送请求,HTTP服务器响应。
HTTP请求的示例
请求 | 结果 |
GET | 请求整个资源 |
HEAD | 请求资源但不包含主体 |
POST | 向现有网络资源添加内容 |
PUT | 修改现有网络资源 |
DELETE | 删除指定的资源 |
TRACE | 显示对网络资源的更改 |
OPTIONS | 显示URL的可用HTTP方法 |
CONNECT | 将请求连接转换为透明的TCP/IP隧道 |
PATCH | 部分修改网络资源 |
调试Web从未如此简单。有了这些工具,您终于可以在做自己喜欢的事情时放松了。
HTTPie
HTTPie的最终目标是使与Web服务进行CLI交互变得用户界面友好。该工具提供了一个HTTP命令,用于发送请求,所有这些请求都使用自然语法。
HTTPie可以用于调试、测试和连接HTTP服务器。它支持HTTP、HTTPS和代理。
亮点
- 内置的JSON支持系统
- 可在Windows、macOS和Linux上安装
- 自定义HTTP头和方法
- 提交表单
- 离线模式
- 基本和摘要身份验证
- 直观的语法
不想在本地安装HTTPie?
别担心,现在你可以运行它online。
Fiddler
Fiddler是一个跨平台的Web调试代理。它可以帮助操纵Web会话,检查HTTPS流量,并监视计算机与互联网之间的流量。
你可以在Windows、macOS和Linux上安装Fiddler。它可能是最受欢迎的调试流量工具。
RESTer
RESTer可作为Google Chrome和Firefox的扩展使用。
亮点
- 使用基本或Auth2身份验证的授权头
- 查看请求历史记录
- 使用任何方法、URL、正文和自定义头部进行请求
- 测试和调试API
Paw
Paw是一个功能齐全的HTTP客户端,允许您发送各种HTTP请求。使用Paw,您可以测试您的API并探索新的API。
Paw专为macOS专门构建,并具有易于使用的功能。您可以导入和生成swagger、RAML等,它支持JSON模式。
亮点
- 支持基本、OAuth、hawk、摘要等多种身份验证
- 动态值
- 环境
- 通过基于JavaScript的扩展进行扩展
- Cookie和会话操作
Requester
Requester是一个强大的客户端,结合了HTTPie、Postman和Paw的功能。它只适用于Sublime Text编辑器。
亮点
- 支持JSON方案
- 请求集合和历史记录
- 带有语法高亮的着色输出
- 现代用户体验
- 设置Cookie、自定义头部、请求正文和查询参数都很容易。
- 支持GraphQL
Postman
总是在处理API?
你会爱上Postman。
Postman无疑是用于调试Web应用程序的较流行的HTTP客户端之一。它可以加快和简化API开发。
亮点
- 带有强大的GUI和用户友好的界面
- 请求历史记录
- 使用集合运行器进行自动化测试
- 灵活的API监控
- 支持REST、GraphQL、SOAP
- 支持多种有效载荷,包括JSON和HTML
cURL
cURL是一个用于使用URL语法发送数据的命令行工具。
好消息是,cURL默认安装在大多数UNIX风格的操作系统上。它支持多种协议,包括FTP、LDAP、POP3、SMTP、GOPHER、IMAP、HTTP、HTTPS和SCP。
Charles Proxy
正如其名,Charles proxy是一个HTTP和反向代理。它通过将本地流量路由到它来工作。
你可以使用Charles进行SSL代理、带宽限制、AJAX调试、断点等等。
Whistle
Whistle是一个基于NodeJS的跨平台调试工具,用于捕获和操纵HTTP、HTTPS、WebSocket和TCP流量。
首先,您需要使用npm安装install NodeJS和Whistle。
npm install -g whistle
如果默认功能不符合您的需求,您可以通过插件扩展功能。
mitmproxy
mitmproxy是安全研究人员中流行的开源HTTPS代理。它可以作为CLI、Web或Python API使用。
网页界面给你与Chrome开发者工具相同的外观和感觉。它还支持HTTP/2。
Proxyman
与上述提到的Paw类似,Proxyman是一款付费的原生macOS网页调试代理应用程序。
它作为网络流量的中间人,并提供许多功能,包括以下内容。
- SSL代理
- 重复请求
- Protobuf
- 重写脚本
- 本地和远程地图
- 内容过滤
- 语法高亮
Proxyman的用户界面非常友好。
HTTP Toolkit
HTTP Toolkit是一款开源的HTTP调试工具。它是一个适用于Windows、Mac和Linux的桌面应用程序。
与其他HTTP调试工具不同,HTTP Toolkit提供了针对特定客户端的自动拦截功能,包括HTTPS设置,而不是拦截来自整个计算机的所有内容,因此避免捕获无关的流量或干扰其他应用程序。
通过点击一次,您可以拦截浏览器窗口(包括Chrome、Firefox等),后端/脚本语言(如Node.js、Python和PHP),任何命令行工具,Electron应用程序,或Android设备和模拟器(包括系统级HTTPS拦截)。
HTTP Toolkit支持标准的HTTP调试功能,包括断点和重写HTTP(S)流量,过滤和搜索收集到的流量,以及对许多常见请求和响应体格式进行高亮和自动格式化。截获、检查和重写HTTP(S)的核心功能都是免费提供的,而一些高级的付费功能,如导入/导出和自动化模拟规则,则需要付费账户。
结论
上述的HTTP客户端和网页调试代理可以在许多方面帮助您。它们中的大多数是免费的或提供试用版本,所以可以尝试其中一些看看哪些适合您。
愉快的 troubleshooting!