如何获取HTTPS请求的响应号

时间:2017-11-14 13:25:59

标签: linux shell curl https wget

我想利用Linux命令获取HTTPS请求的响应号而不是HTTP请求。根据我目前的知识wgetcurl可以实现目标。

例如,给定地址https://asunnot.oikotie.fi/vuokrattavat-asunnot/espoo/13874872我打算使用以下命令:

  • with curl: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?

2 个答案:

答案 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>