Menu
CoddyTech

用户代理

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

每个请求都会在 User-Agent 请求头中说明它来自什么客户端。curl 会发送自己的名称和版本;浏览器则会发送一长串沿用至今的字符串。

这比看起来更重要。服务器经常会根据它采取不同的行为:提供适合移动设备的布局、拦截未知客户端,或拒绝看起来像自动化程序的请求。所以,“在我的浏览器中能用,但在 curl 中不行”通常就是这个请求头的问题,没有更深层的原因。

curl -s -A 'my-monitor/1.0' http://127.0.0.1:9133/

-A 用于设置它,它只是 -H 'User-Agent: ...' 的简写。

如果你对某项服务发送自动化请求,设置一个如实说明工具名称的 User-Agent 是一种礼貌做法:如果你的流量导致问题,值班人员就能看出问题是什么,以及该联系谁。

challenge icon

挑战

困难

如实介绍自己。

  1. 在端口 9133 上启动捕获监听器
  2. 发送请求,并将自身标识为 my-monitor/1.0
  3. 打印 req.txt 中的 user agent 行

预期输出:

User-Agent: my-monitor/1.0

亲手试试

终端
quiz icon自我测试

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

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

自己练习: Terminal 在线编辑器