【问题标题】:How to get a response number of a HTTPS request如何获取 HTTPS 请求的响应号
【发布时间】:2018-04-27 11:23:20
【问题描述】:

我想使用 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?

【问题讨论】:

  • 详细说明您的正确回复编号

标签: linux shell curl https wget


【解决方案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 服务器的用户代理字符串。如果此字段不是,一些做得不好的 CGI 会失败 设置为"Mozilla/4.0"。要对字符串中的空格进行编码,请用单引号将字符串括起来。这个可以 当然也可以使用-H, --header 选项进行设置。

【讨论】:

    【解决方案2】:

    服务器使用 HTTP 代码 405 进行响应,因为它拒绝了您发送的 curl 命令的 User-Agent 标头。这显然是服务器配置或网站应用程序本身的不良行为。服务器应该使用 HTTP 400 进行响应。

    无论如何,对于给定的 URL,以下工作正常:

    curl -I -H "User-Agent: Mozilla/5.0" <url>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-13
      • 2019-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多