Menu
CoddyTech

使用 -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 会出现在浏览器历史记录、服务器日志和来源页请求头中。

challenge icon

挑战

专家

发送你的第一个 POST 请求,并读取服务器收到的内容。

  1. 在端口 9122 上启动捕获监听器(它会回复 200,并将请求写入 req.txt)
  2. 将 name=ada POST 到 http://127.0.0.1:9122/signup
  3. 打印 req.txt 的第一行

预期输出:

POST /signup HTTP/1.1

给 curl 添加 --max-time 3,这样它就不会一直等待,并丢弃它的输出。

亲手试试

终端
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

使用终端进行网络通信中的所有课

自己练习: Terminal 在线编辑器