Icecast header 响应同时为 400 和 200

Icecast header response is both 400 and 200

我在 sub.domain.org 的 Windows 盒子上安装了 Icecast 2.4.4 运行ning。我的网站位于 domain.org 的另一台服务器上。

当我 SSH 进入我的 Linux 主机 shell 并且 运行 curl 到挂载点时,我得到了 400 的响应,但是如果我使用 wget,我得到了 200 的响应.怎么会这样?

# wget https://sub.domain.org/live.mp3
--2018-12-19 17:52:58--  https://sub.domain.org/live.mp3 Resolving sub.domain.org... 111.111.111.111 Connecting to
sub.domain.org|111.111.111.111|:443... connected. HTTP request sent,
awaiting **response... 200 OK** Length: unspecified [audio/mpeg] Saving
to: `live.mp3'

    [                        <=>                 ] 96,600      3.93K/s              ^C

# curl --head  https://sub.domain.org/live.mp3
HTTP/1.0 **400 Bad Request**
Server: Icecast 2.4.4
Connection: Close Date: Thu, 20 Dec 2018
00:53:32 GMT Content-Type: text/html; charset=utf-8 Cache-Control:
no-cache, no-store Expires: Mon, 26 Jul 1997 05:00:00 GMT Pragma:
no-cache Access-Control-Allow-Origin: *

因为在 cURL 的情况下,您要传递 --head 参数。这告诉 cURL 发出 HTTP HEAD 请求而不是 wget 执行的 HTTP GET 请求。

Icecast 支持 HTTP HEAD 请求,因此 HTTP 400 响应是完全合理的。