使用 -d 发送 POST 请求
Coddy 使用终端进行网络通信 课程的第 32 课,共 47 课。
到目前为止,每个请求都是在请求某样东西。-d 则会发送内容:
curl -s -d 'name=ada' http://127.0.0.1:9122/signup添加它后,会立即发生两件事。curl 会自动将方法从 GET 切换为 POST,并将你提供的内容附加为请求的正文。
所以,-d 不只是“添加数据”,它会改变请求的类型。如果你想发送一个完全没有请求体的 POST 请求,就必须自己指定 -X POST。
GET 会把参数放在 URL 中,让所有人都能看到并记录下来,而 POST 会把参数放在请求体中。这就是为什么包含密码的表单会使用 POST:并不是因为请求体经过了加密,它并没有加密,而是因为 URL 会出现在浏览器历史记录、服务器日志和来源页请求头中。
挑战
专家发送你的第一个 POST 请求,并读取服务器收到的内容。
- 在端口 9122 上启动捕获监听器(它会回复 200,并将请求写入
req.txt) - 将
name=adaPOST 到http://127.0.0.1:9122/signup - 打印
req.txt的第一行
预期输出:
POST /signup HTTP/1.1给 curl 添加
--max-time 3,这样它就不会一直等待,并丢弃它的输出。
亲手试试
终端
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
使用终端进行网络通信中的所有课
自己练习: Terminal 在线编辑器