Ответ заголовка Icecast: 400 и 200.

У меня есть Icecast 2.4.4, работающий на компьютере с Windows по адресу sub.domain.org. Мой сайт находится на другом сервере по адресу domain.org.

Когда я подключаюсь по SSH к своей оболочке хоста Linux и запускаю 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: *

person Justin    schedule 20.12.2018    source источник


Ответы (1)


Потому что в случае cURL вы передаете параметр --head. Это говорит cURL сделать запрос HTTP HEAD вместо запроса HTTP GET, который выполняет wget.

Icecast не поддерживает запросы HTTP HEAD, поэтому ответ HTTP 400 полностью оправдан.

person TBR    schedule 20.12.2018
comment
Спасибо, ТБР. Я не знал этого о Icecast. - person Justin; 26.12.2018