我想使用linux命令获得一个https请求的响应号,而不是http请求的响应号。根据我目前的知识,wget
和curl
可以达到目标。
例如,给定地址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
选项。