术语表
cURL
cURL 是一个开源的命令行工具和库,用于使用各种协议(HTTP、HTTPS、FTP、SMTP 等)传输数据。它支持多种选项和参数,可以发送请求、上传文件、处理认证、设置代理等。cURL 广泛应用于 Web 开发、API 测试、自动化脚本等场景,是开发者工具箱中不可或缺的工具之一。在不同操作系统中,cURL 的命令名称可能略有不同:在 Windows 中通常使用 curl,在 Linux 和 macOS 中使用 curl 或 curl。
HTTP 方法
HTTP 方法(也称为 HTTP 动词)定义了对资源执行的操作类型。GET 用于获取资源,是最常用的方法,具有幂等性;POST 用于向服务器提交数据,通常会导致服务器状态变化;PUT 用于替换目标资源的完整表示;PATCH 用于对资源进行部分修改;DELETE 用于删除指定资源;HEAD 与 GET 类似但不返回响应体,仅返回响应头;OPTIONS 用于描述目标资源的通信选项,常用于 CORS 预检请求。正确选择 HTTP 方法是构建 RESTful API 的基础。
请求头(Request Headers)
请求头是 HTTP 请求中传递的元数据,用于描述请求的附加信息。常见的请求头包括:Content-Type 指定请求体的媒体类型;Authorization 包含认证凭据;Accept 指定客户端期望接收的响应媒体类型;User-Agent 标识客户端软件信息;Cache-Control 指定缓存策略;Referer 表示请求来源页面。请求头以键值对的形式存在,每个请求可以包含多个请求头,用于向服务器传递丰富的上下文信息。
查询参数(Query Parameters)
查询参数是附加在 URL 问号后面的键值对数据,用于传递请求的筛选条件或配置信息。多个参数之间使用和号(&)分隔。查询参数通常用于 GET 请求中传递搜索条件、分页参数、排序方式等。例如,在搜索 API 中,查询参数可以包含 keyword(搜索关键词)、page(页码)、limit(每页数量)等。查询参数中的特殊字符需要进行 URL 编码,以确保传输的正确性。
请求体(Request Body)
请求体是 HTTP 请求中携带的数据内容,通常用于 POST、PUT、PATCH 等方法中向服务器提交数据。请求体的格式由 Content-Type 请求头指定,常见的格式包括:application/json(JSON 格式,现代 API 最常用)、application/x-www-form-urlencoded(表单 URL 编码格式,传统表单提交使用)、multipart/form-data(多部分表单数据,文件上传使用)、text/plain(纯文本格式)。选择合适的请求体格式对于服务器正确解析数据至关重要。
JSON
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。它基于 JavaScript 的对象字面量语法,但独立于编程语言。JSON 使用键值对(对象)和有序列表(数组)两种基本结构。在 HTTP 请求和响应中,JSON 是最常用的数据格式之一,广泛应用于 RESTful API 的数据传输。发送 JSON 数据时,Content-Type 请求头应设置为 application/json。
URL 编码
URL 编码(也称为百分号编码)是一种将特殊字符转换为 % 后跟两位十六进制数的编码方式。例如,空格编码为 %20,和号编码为 %26,中文字符也会被编码为对应的十六进制表示。URL 编码确保 URL 中的特殊字符不会被误解为 URL 结构的一部分。在构建包含查询参数或路径参数的 URL 时,需要对参数值进行 URL 编码。本工具会自动处理 URL 编码,用户无需手动转换。
-L 参数(跟随重定向)
-L 是 cURL 的一个重要参数,告诉 cURL 自动跟随服务器返回的 HTTP 重定向响应。当服务器返回 301(永久重定向)、302(临时重定向)、307(临时重定向,保持方法不变)、308(永久重定向,保持方法不变)等状态码时,cURL 会自动请求 Location 头指定的新 URL。如果不使用 -L 参数,cURL 只会返回重定向响应,而不会自动跳转。在测试涉及重定向的 API 时,-L 参数非常有用。
-k 参数(忽略 SSL 验证)
-k 参数(或 --insecure)让 cURL 跳过 SSL 证书验证。在正常情况下,cURL 会验证服务器的 SSL/TLS 证书是否由受信任的证书颁发机构签发。当使用自签名证书、过期证书或测试环境中的证书时,验证会失败。使用 -k 参数可以跳过这些验证,允许 cURL 连接到这些服务器。注意:在生产环境中应始终验证 SSL 证书,-k 参数仅建议在开发和测试环境中使用。
-v 参数(详细输出)
-v 参数(或 --verbose)启用详细输出模式,让 cURL 显示完整的请求和响应交互过程。这包括:连接建立过程、TLS/SSL 握手详情、发送的请求头和请求体、接收的响应头和响应体等。详细输出对于调试 HTTP 问题非常有价值,可以帮助开发者了解请求的完整生命周期。输出信息中,以 > 开头的行表示发送的数据,以 < 开头的行表示接收的数据。
-i 参数(包含响应头)
-i 参数让 cURL 在输出响应体之前先显示 HTTP 响应头信息。这对于检查服务器返回的状态码、响应头(如 Content-Type、Set-Cookie、Cache-Control 等)非常有用。响应头和响应体之间通过空行分隔。在调试 API 时,响应头中往往包含重要的信息,如分页信息、认证状态、缓存策略等,使用 -i 参数可以方便地查看这些信息。
-s 参数(静默模式)
-s 参数(或 --silent)启用静默模式,隐藏 cURL 的进度条和部分错误信息。在脚本或自动化流程中使用 cURL 时,进度条的输出可能会干扰其他信息的显示。使用 -s 参数可以让 cURL 只输出请求的结果数据,保持输出的整洁。如果需要在静默模式下显示错误信息,可以结合 --show-error 参数使用。
connect-timeout
--connect-timeout 参数用于设置 cURL 建立 TCP 连接的最大等待时间(以秒为单位)。如果在指定时间内无法建立连接,cURL 会放弃尝试并返回错误。这个参数对于防止请求长时间挂起非常重要,特别是在网络不稳定或目标服务器可能不可达的情况下。默认情况下,cURL 没有连接超时限制(取决于操作系统的 TCP 超时设置),建议在生产环境中合理设置此参数。
RESTful API
RESTful API 是一种基于 REST(Representational State Transfer)架构风格设计的 API。它使用标准的 HTTP 方法(GET、POST、PUT、PATCH、DELETE)对资源进行操作,使用 URL 标识资源,使用状态码表示操作结果。RESTful API 具有无状态、统一接口、可缓存等特性,是现代 Web API 的主流设计方式。正确使用 HTTP 方法和状态码是构建良好 RESTful API 的基础。
UD5工具箱