Menu
CoddyTech

表单编码

Coddy 使用终端进行网络通信 课程的第 34 课,共 47 课。

使用 -d 时,curl 会添加一个说明请求体格式的标头:

Content-Type: application/x-www-form-urlencoded

这个很长的名称指的是 HTML 表单一直使用的格式:用 & 连接的 key=value 键值对。服务器读取这个标头后,就知道要按这些字符拆分请求体。

这就引出了一个显而易见的问题:如果一个值中包含 & 或 =,该怎么办?它必须经过转义,写成一个百分号和两个十六进制数字。空格会变成 %20 或 +,& 会变成 %26。

--data-urlencode 会帮你进行转义。对于人类输入的内容,你应该优先使用它。将原始用户输入直接通过普通的 -d 发送,会导致字段莫名其妙地在第一个 & 处被截断。

challenge icon

挑战

困难

确认 curl 为你选择的标头。

  1. 在端口 9124 上启动捕获侦听器
  2. 使用 -d 发送 POST 数据 a=1
  3. 从 req.txt 中打印 Content-Type 行

预期输出:

Content-Type: application/x-www-form-urlencoded

匹配时忽略大小写,并要求内容位于行首。

亲手试试

终端
quiz icon自我测试

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

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

自己练习: Terminal 在线编辑器