我想使用linux命令获得一个https请求的响应号,而不是http请求的响应号。根据我目前的知识,wgetcurl可以达到目标。
例如,给定地址https://asunnot.oikotie.fi/vuokrattavat-asunnot/espoo/13874872我打算使用以下命令:
卷曲:curl -I https://asunnot.oikotie.fi/vuokrattavat-asunnot/espoo/13874872
使用wget:wget --spider -S 'https://asunnot.oikotie.fi/vuokrattavat-asunnot/espoo/13874872'
两个请求都得到了HTTP/1.1 405 Not Allowed的响应。但当我用浏览器(如chrome或firefox等)尝试这个地址时,页面确实可以毫无问题地显示出来。
有人能帮忙吗?如何能够获得正确的响应号码而不是第一个直接405?

最佳答案

使用curl需要设置-A, --user-agent选项,因为某些http服务器/cgi需要填写头User-Agent

curl -I 'https://asunnot.oikotie.fi/vuokrattavat-asunnot/espoo/13874872' -A "Mozilla/5.0"

输出:
HTTP/1.1 200 OK
Date: Tue, 14 Nov 2017 13:56:11 GMT
Content-Type: text/html
Connection: keep-alive
Server: nginx
Vary: Accept-Encoding
X-DB: 5
X-DW: 0
X-DZ: 93.72.75.166
X-VID: 93.72.75.166:14CDB9B4-DE01-3FAA-AFF5-65BC2F771745
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Cache-Control: private, no-cache, no-store, must-revalidate
Edge-Control: no-store, bypass-cache
Surrogate-Control: no-store, bypass-cache

-A, --user-agent <agent string>
(http)指定要发送到http服务器的用户代理字符串。如果这个字段不是
设置为"Mozilla/4.0"。要对字符串中的空白进行编码,请用单引号将字符串括起来。这个罐头
当然也可以设置-H, --header选项。

08-24 15:33