Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • Icecast-Server Icecast-Server
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 116
    • Issues 116
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 6
    • Merge requests 6
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Xiph.OrgXiph.Org
  • Icecast-ServerIcecast-Server
  • Issues
  • #1246

Icecast Server enforcing case sensitivity on HTTP header Range "bytes" units

Clients making requests from Icecast 2.3.1 server with HTTP Range header using units "bytes" with any casing other then all lowercase fail request with:

HTTP/1.0 416 Request Range Not Satisfiable

It is expected that the HTTP Range header should be case insensitive on "bytes"

W3C rfc2616 HTTP 1.1 sec 2.1 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.1) states about BNF literals "Unless stated otherwise, the text is case-insensitive."

Section 3.12 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.12) which defines the Range units defines "bytes", but does not specify case sensitivity.

Here is an example localhost request/response against an icecast 2.3.1 server with Range units as "Bytes":

REQUEST: **************\n
GET /TheBeginning.mp3 HTTP/1.1\r\n
Range: Bytes=0-\r\n
Host: localhost\r\n
Accept: */*\r\n
\r\n
RESPONSE: **************\n
HTTP/1.0 416 Request Range Not Satisfiable\r\n
\r\n

Here is an example localhost request/response against an icecast 2.3.1 server with Range units as "bytes" (data truncated):

REQUEST: **************\n
GET /TheBeginning.mp3 HTTP/1.1\r\n
Range: bytes=0-\r\n
Host: localhost\r\n
Accept: */*\r\n
\r\n
RESPONSE: **************\nHTTP/1.1 206 Partial Content\r\n
Date: Wed, 10-Oct-2007 19:29:28 GMT\r\n
Content-Length: 7064799\r\n
Content-Range: bytes 0-7064798/7064799\r\n
Content-Type: audio/mpeg\r\n
\r\n
ID3\x002\x000\x000\x000\x000\x010BTT2\x000\x000\x00F\x000The Beginning

Here is an example localhost request/response against an Apache 1.3.37 (Unix) server with Range units as "Bytes" (data truncated):

REQUEST: **************\n
GET http://www.foldedspace.org:80/files/vintage/Nipper's%20Greatest%20Hits_%201901-1920/17%20Come%20Josephine%20In%20My%20Flying%20Machine.mp3 HTTP/1.1\r\n
Range: Bytes=0-\r\n
Host: www.foldedspace.org\r\n
Accept: */*\r\n
\r\n
RESPONSE: **************\nHTTP/1.1 206 Partial Content\r\n
Connection: Keep-Alive\r\n
Content-Length: 2411015\r\n
Date: Wed, 10 Oct 2007 23:31:58 GMT\r\n
Content-Range: bytes 0-2411014/2411015\r\n
Content-Type: audio/mpeg\r\n
ETag: "63dc404-24ca07-4459501b"\r\n
Server: Apache/1.3.37 (Unix) mod_throttle/3.1.2 DAV/1.0.3 mod_fastcgi/2.4.2 mod_gzip/1.3.26.1a PHP/4.4.7 mod_ssl/2.8.22 OpenSSL/0.9.7e\r\n
Last-Modified: Thu, 04 May 2006 00:51:39 GMT\r\n
Accept-Ranges: bytes\r\n
Keep-Alive: timeout=2, max=100\r\n
\r\n
ID3\x002\x000\x000\x000\x000\x012\x002TT2\x000\x000%\x000Come Josephine In My Flying Machine

Here is an example localhost request/response against an IIS 6.0 server with Range units as "Bytes" (data truncated):

REQUEST: **************\n
GET http://kuow.org:80/mp3high/mp3/WeekdayA/WeekdayA20071010.mp3 HTTP/1.1\r\n
Range: Bytes=0-\r\n
Host: kuow.org\r\n
Accept: */*\r\n
\r\n
RESPONSE: **************\n
HTTP/1.1 206 Partial Content\r\n
Connection: Keep-Alive\r\n
Content-Length: 25918483\r\n
Date: Wed, 10 Oct 2007 23:26:17 GMT\r\n
Content-Range: bytes 0-25918482/25918483\r\n
Content-Type: audio/mpeg\r\n
ETag: "449237ff5ebc81:2a4"\r\n
Server: Microsoft-IIS/6.0\r\n
Last-Modified: Wed, 10 Oct 2007 17:00:01 GMT\r\n
Accept-Ranges: bytes\r\n
X-Powered-By: ASP.NET\r\n
\r\n
 √P╚\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000Info
Assignee
Assign to
Time tracking