我想利用Linux命令获取HTTPS请求的响应号而不是HTTP请求。根据我目前的知识wget
和curl
可以实现目标。
例如,给定地址https://asunnot.oikotie.fi/vuokrattavat-asunnot/espoo/13874872我打算使用以下命令:
curl -I https://asunnot.oikotie.fi/vuokrattavat-asunnot/espoo/13874872
wget --spider -S 'https://asunnot.oikotie.fi/vuokrattavat-asunnot/espoo/13874872'
两个请求的响应都为HTTP/1.1 405 Not Allowed
。但是当我用浏览器尝试地址时,例如Chrome或Firefox等。页面确实可以毫无问题地显示。
任何人都可以提供帮助吗?如何获得正确的响应数而不是第一个直接的405?
答案 0 :(得分:1)
使用 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服务器的User-Agent字符串。如果没有这个字段,一些做得很糟糕的CGI会失败 设为"Mozilla/4.0"
。要对字符串中的空白进行编码,请使用单引号括起该字符串。这个可以 当然也可以使用-H, --header
选项进行设置。
答案 1 :(得分:0)
服务器正在回答HTTP代码405,因为它拒绝发送User-Agent
命令的curl
标头。这显然是服务器配置或网站应用程序本身的不良行为。服务器应该已经回答了HTTP 400。
无论如何,以下适用于给定的URL:
curl -I -H "User-Agent: Mozilla/5.0" <url>