环境
- 有一个域名:
blog.dayday.com, 但是没有配置 DNS - 有一个 nginx 服务器, ip 为:
10.45.119.120, 然后再 nginx 上配置了对blog.dayday.com的转发规则: /v1/~
那么有什么方法可以请求该 nginx 地址, 命中 nginx 的转发规则呢
解决方案
curl -X POST https://10.45.119.120/v1/login \
-H "Host: blog.dayday.com" --insecure
-H "Host: blog.dayday.com": 强制请求头中 Host 字段为我们想要的域名--insecure: 跳过证书校验(如果是 IP 访问且证书不匹配)
这样请求就会走到 IP 地址, 但服务器或者 nginx 会看到请求头中的 Host 是 blog.dayday.com, 从而走到正确的路由
夹带点其他干货
如果想要发送 POST 同时又只看响应头, 可以使用 -D -:
curl -X POST https://10.45.119.120/v1/login \
-H "Host: blog.dayday.com" --insecure \
-D -
-D -: 会把响应头输出到标准输出, 随后响应体仍然打印
请求携带 cookie
curl https://10.45.119.120/v1/me \
-b "token=xxx"
将 cookie 保存到文件,并且每次请求之后更新 cookie 文件(token 更新)
curl -b cookies.txt -c cookies.txt \
http://10.45.119.120/v1/me
-b cookies.txt:读取当前目录下的 cookie.txt 文件作为 cookie-c cookies.txt:将返回的 cookie 保存/更新 到当前目录下的 cookie.txt 文件