- cURL / curl
- 开源命令行工具和libcurl库,用于通过URL在命令行中发送HTTP/HTTPS/FTP等协议请求,是开发者调试API最常用的工具。
- HTTP方法
- HTTP请求动作,常见有GET(读取)、POST(创建)、PUT(整体更新)、PATCH(部分更新)、DELETE(删除)、HEAD(获取头)、OPTIONS(查询服务器能力)。
- 请求头(Header)
- HTTP请求中的元数据键值对,如Content-Type、Authorization、User-Agent、Cookie、Accept等,通过-H/--header在curl中指定。
- 请求体(Body)
- HTTP请求的数据部分,POST/PUT/PATCH常用,通过-d/--data/--data-binary/-F在curl中指定,常见格式有JSON、form-urlencoded、multipart/form-data。
- Content-Type
- 请求头/响应头,指明body的媒体类型。application/json表示JSON,application/x-www-form-urlencoded表示URL编码表单,multipart/form-data表示文件上传表单。
- Basic认证
- HTTP基础认证,通过Authorization: Basic base64(user:pass)头传递用户名密码,curl中用-u user:pass指定。
- Bearer Token
- 基于令牌的认证方式,通过Authorization: Bearer <token>头传递,JWT/OAuth2常用。
- User-Agent
- 请求头,标识客户端类型(浏览器/爬虫/脚本),curl默认发送"curl/版本号",很多网站会拦截非浏览器UA,常用-A指定。
- Cookie
- 服务器通过Set-Cookie下发、浏览器后续请求通过Cookie头回传的键值对,用于会话保持。curl -b发送Cookie,-c保存Cookie。
- Referer
- 请求头,表示当前请求来源页面URL,部分防盗链/CSRF校验会检查。curl -e设置。
- 重定向(3xx)
- 服务器返回301/302/303/307/308状态码时告诉浏览器跳转到新URL。curl默认不跟随,加-L/--location跟随。
- --compressed
- curl选项,自动添加Accept-Encoding: deflate, gzip头并自动解压响应。不设置时响应可能是乱码压缩数据。
- -k/--insecure
- curl选项,跳过HTTPS证书验证,仅用于自签证书测试环境,生产环境禁止使用。
- fetch API
- 浏览器原生JavaScript HTTP请求API,返回Promise,现代浏览器都支持。
- Axios
- 流行的基于Promise的HTTP客户端库,浏览器和Node.js通用,自动JSON序列化、拦截器、超时取消。
- OkHttp
- Square公司出品的Java/Android HTTP客户端库,高性能、HTTP/2支持、连接池、透明GZIP。
- HttpClient(.NET)
- C#/.NET推荐的HTTP客户端,System.Net.Http命名空间,.NET Core/.NET 5+标准API。
- Invoke-RestMethod
- PowerShell 3.0+内置的HTTP请求cmdlet,自动解析JSON/XML响应为PowerShell对象。