HTTP-запрос к IceCast и ответ
Существует HTTP-запрос к MP3-потоку сервера IceCast 2.3.2-kh29 http: //*: * /.mp3 и ответ (некоторые данные ** ed):
GET /*.mp3 HTTP/1.1
Host: ***:*
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
HTTP/1.0 200 OK
Content-Type: audio/mpeg
icy-br: 192
ice-audio-info: bitrate=192;samplerate=44100;channels=2
icy-description: MP3 192 Kbps
icy-genre: *
icy-name: *
icy-pub: 1
icy-url: http://*
Server: Icecast 2.3.2-kh29
Cache-Control: no-cache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
Длина содержимого не указана в ответе. Также keep-alive отсутствует, несмотря на запрос. Это нормальная ситуация? Протокол указывает, что Content-Length должен быть в этом случае. Поток начинает играть. Может быть как-то, что не все заголовки показываются в LiveHTTPHeaders таким образом? Или поток является частным случаем, когда используется какой-то искусственно созданный Content-Length?
1 ответ
HTTP 1.0 не требует указания длины содержимого. Серверы SHOUTcast/Icecast не будут указывать длину контента, потому что потоки являются живыми и заранее не определены.