表单编码
Coddy 使用终端进行网络通信 课程的第 34 课,共 47 课。
使用 -d 时,curl 会添加一个说明请求体格式的标头:
Content-Type: application/x-www-form-urlencoded这个很长的名称指的是 HTML 表单一直使用的格式:用 & 连接的 key=value 键值对。服务器读取这个标头后,就知道要按这些字符拆分请求体。
这就引出了一个显而易见的问题:如果一个值中包含 & 或 =,该怎么办?它必须经过转义,写成一个百分号和两个十六进制数字。空格会变成 %20 或 +,& 会变成 %26。
--data-urlencode 会帮你进行转义。对于人类输入的内容,你应该优先使用它。将原始用户输入直接通过普通的 -d 发送,会导致字段莫名其妙地在第一个 & 处被截断。
挑战
困难确认 curl 为你选择的标头。
- 在端口 9124 上启动捕获侦听器
- 使用
-d发送 POST 数据a=1 - 从
req.txt中打印 Content-Type 行
预期输出:
Content-Type: application/x-www-form-urlencoded匹配时忽略大小写,并要求内容位于行首。
亲手试试
终端
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
使用终端进行网络通信中的所有课
自己练习: Terminal 在线编辑器