本文概述
- HTTPie
- 请求者
什么是调试?
如果你观看犯罪剧, 那么调试背后的想法对你将不会陌生。调试是一个过程, 涉及很多策略。这是系统地发现并解决程序中的问题和错误。
![HTTP客户端调试Web应用程序](http://www.srcmini.com/wp-content/uploads/2020/04/debug.jpg)
文章图片
此外, 调试还可以解决所有可能导致软件或Web应用程序无法正常运行的问题。调试API或Web应用程序的过程主要涉及尝试重现该问题。
因此, 出现了发出API请求的需求。现在, 这就是问题所在。大多数浏览器都会阻止你更改原始标头, 甚至无法更改URL大小的限制。
换句话说, 要重现此问题, 你可能需要执行一些HTTP操作。这将需要一些功能强大的调试工具。
调试过程的所有组件或策略包括:
- 交互式调试
- 控制流分析
- 单元测试
- 整合测试
- 日志文件分析
- 监控方式
- 内存转储
- 剖析
什么是HTTP客户端?
如果你想构建一个利用HTTP协议进行分布式通信的系统, 或者构建一个支持HTTP的系统(例如Web应用程序)。然后, 你可能需要查看HTTP客户端组件。
![HTTP客户端调试Web应用程序](http://img.readke.com/220515/12500I551-1.png)
文章图片
每次键入URL时, HTTP或超文本传输??协议就是你可以在Web上进行通信或传输数据的原因。这是一个使浏览互联网成为可能的应用协议。
现在, HTTP客户端是一个系统, 它以HTTP文本格式向服务器发送请求, 并依次从同一服务器接收响应。
此时, 了解HTTP客户端和HTTP服务器之间的区别至关重要。
HTTP客户端和服务器之间的差异
虽然HTTP客户端通常是Web浏览器, 但是HTTP服务器充当应用程序服务器的代理。它们用作HTML, CSS, JS, PHP, Python, C#, Java, Node.js等。
简而言之, 你的智能手机, 电视, PlayStation, 实际上是任何可以连接到互联网的设备, 都可能使用HTTP客户端。
同样, HTTP服务器是HTTP客户端连接到的网络计算机。他们分享的关系更像是一种对话式的关系。 HTTP客户端发送请求并且HTTP服务器响应的位置。
HTTP请求的例子
要求 | 结果 |
得到 | 请求整个资源 |
头 | 没有主体就请求资源 |
开机自检 | 将内容添加到现有的Web资源 |
放 | 修改现有的网络资源 |
删除 | 删除指定的资源 |
跟踪 | 显示对Web资源的更改 |
选项 | 显示URL的可用HTTP方法 |
连接 | 将请求连接转换为透明的TCP / IP隧道 |
补丁 | 部分修改网络资源 |
首先, 让我们探索命令行HTTP客户端。
HTTPie HTTPie的最终目标是使与Web服务用户界面的CLI交互变得友好。该工具提供了用于发送请求的HTTP命令, 所有命令均使用自然语法。
![HTTP客户端调试Web应用程序](http://img.readke.com/220515/12500K027-2.jpg)
文章图片
另外, HTTPie可用于调试, 测试和与HTTP服务器连接。
特征
- 内置JSON支持系统
- 文档和插件
- 支持Linux, macOS和Windows
- 支持Python 2.7和3.x
- 验证HTTPS和代理
- 直观的语法
强调
- 支持JSON Schemer
- 请求收集和历史记录
- 带语法高亮显示的彩色输出
- 现代UX
- Cookie, 自定义标头, 请求正文和查询参数易于设置。
- GraphQL支持
RESTer可作为Google Chrome和Firefox的扩展程序使用。
![HTTP客户端调试Web应用程序](http://www.srcmini.com/wp-content/uploads/2020/04/rester.png)
文章图片
特征
- 具有Basic或Auth2身份验证的授权标头
- 查看请求历史
- 使用任何方法, URL, 正文和自定义标头执行请求
- 测试和调试API
Paw是HTTP客户端, 它允许你发送各种HTTP请求。使用Paw, 你可以测试你的API, 还可以探索新的API。而且, Paw具有功能齐全的可视化编辑器和HTTP工具集。
![HTTP客户端调试Web应用程序](http://www.srcmini.com/wp-content/uploads/2020/04/paw-1.png)
文章图片
此外, Paw专为macOS构建, 并且具有易于使用的功能。你可以导入并生成swagger, RAML等, 它支持JSON模式。
邮差
毫无疑问, Postman是用于调试Web应用程序的更流行的HTTP客户端之一。它允许更快, 更轻松地开发API。
![HTTP客户端调试Web应用程序](http://www.srcmini.com/wp-content/uploads/2020/04/postman-e1558981813839.png)
文章图片
特征
- 包含功能强大的GUI, 并具有用户友好的界面。
- 请求的历史记录。
- 使用收集运行器进行自动化测试。
- 详细的API文档。
- 支持拆分堆栈开发。
- 灵活的API监控。
网络工具
NetTool是免费的调试工具。与PostMan不同, 它具有两个组成部分: TCP隧道和HTTP客户端。此外, NetTool还可以用于监视Web应用程序的正常运行时间, 性能和准确性。
![HTTP客户端调试Web应用程序](http://www.srcmini.com/wp-content/uploads/2020/04/nettool.png)
文章图片
此外, NetTool可用于处理应用程序级别的网络消息。
卷曲
如果你更多是命令行用户, 那么cURL是适合你的工具。 cURL是一个命令行工具, 用于使用URL语法发送数据。
![HTTP客户端调试Web应用程序](http://img.readke.com/220515/12500I048-7.png)
文章图片
SSH进入远程服务器时, cURL很有用。它还可以检查和验证那些远程服务器的证书。
强调
- 支持一系列常见的网络协议。
- 执行SSL证书验证。
- 包含在nix发行版中
- 支持用于测试和部署的构建脚本。
Fiddler是一个跨平台的Web应用程序调试代理。它可以编辑和操纵Web会话。此外, Fiddler可以解密HTTPS流量并显示Web应用程序请求。
![HTTP客户端调试Web应用程序](http://www.srcmini.com/wp-content/uploads/2020/04/fiddler-debug.png)
文章图片
使用Fiddler, 你可以编写HTTP请求。同样, cookie, 标头和缓存指令在客户端和服务器之间传输。
特征
- Web会话操作
- 性能测试
- 安全测试
- HTTP / HTTPS流量记录
- 网页调试
- 定制选项
Charles代理还是最受欢迎的调试工具之一。它是一个HTTP代理, 通过它路由本地计算机流量。只要你配置了Charles代理, 它就可以在任何智能设备和PC上运行。
![HTTP客户端调试Web应用程序](http://img.readke.com/220515/12500M064-9.png)
文章图片
你可以将Charles用于SSL代理, 带宽限制, AJAX调试, 断点等。
第二, 使用网络浏览器
火狐浏览器
可以通过浏览器调试Web应用程序。 Firefox Web浏览器允许你通过使用附加组件和扩展来添加功能。
![HTTP客户端调试Web应用程序](http://www.srcmini.com/wp-content/uploads/2020/04/firefox.png)
文章图片
因此, 你可以直接从浏览器使用Web开发人员工具栏和其他调试扩展。
IE浏览器
尽管Internet Explorer可能不利于更严格的Web API开发, 但可以运行它来检查崩溃报告。
而且, 它可以检查和检测错误和有缺陷的代码。
![HTTP客户端调试Web应用程序](http://www.srcmini.com/wp-content/uploads/2020/04/internet-explorer.jpg)
文章图片
苹果浏览器
苹果公司的Safari浏览器Web开发人员工具包括一个Web检查器。使用此工具可以轻松调试, 修改, 监视和优化网站应用程序。
同样, 它具有用户友好的界面, 即响应式设计模式。在这里, 你可以查看你的网页, 其分辨率和方向。
铬
Chrome开发人员工具直接在浏览器中构建。 DevTools可以帮助诊断问题。此外, 它们还允许你即时编辑页面。
![HTTP客户端调试Web应用程序](http://www.srcmini.com/wp-content/uploads/2020/04/chrome-inspect.png)
文章图片
借助Chrome开发者工具, 你可以及时检查API, 并且压力较小。
总结
开发Web应用程序或API可能很容易, 也可能不容易。捕获HTTP客户端的请求并从HTTP服务器接收响应绝非易事。
【HTTP客户端调试Web应用程序】但是, 使用这些工具, 你可以在游戏中处于领先地位。使用HTTP客户端监控API, 检测错误并调试Web应用程序, 以及所有其他功能。
推荐阅读
- 如何优化PHP Laravel Web应用程序以获得高性能()
- Web 3.0(Web设计的新时代已经来临)
- Web开发中的物联网
- Visual Studio 2019 – 10项新功能和改进
- 9个用于构建企业应用程序的Java EE框架
- Python脚本测试网站是否支持HTTP/2
- JavaScript错误的5个常见原因(以及如何避免)
- 微信开发第四课 App() getApp() Page() getCurrentPages() 之间的区别
- uniapp打包发版到linux服务器步骤----H5端