My previous post included a couple of spurious spaces after a couple of the header values. Corrected here:
HTTP/1.0 503 Service Unavailable[0d][0a]Content-Type: text/html[0d][0a]Cache-Control: no-cache[0d][0a]Connection: close[0d][0a][0d][0a]<html>... Side note: be sure your body is at least 512 bytes, passing it with <!-- internet explorer you are not being "helpful" with your "friendly" error messages --> or equivalent wording consistent with local policy :) to disable the ridiculous friendly messages in at least some versions of IE: http://stackoverflow.com/a/11544049/1695906 On Jun 22, 2016 9:41 PM, "Michael Ezzell" <mich...@ezzell.net> wrote: > > > On Jun 22, 2016 7:06 PM, "Shawn Heisey" <hapr...@elyograg.org> wrote: > > > > I have verified that there is nothing on the line after the headers. On > > the recommendation I saw elsewhere, the file is in DOS text format, so > > each line ends in CRLF, not just LF. Could the line endings be the problem? > > Most definitely. > > Review the file's content with a hex editor or hexdump. > > Each line of headers *must* end with \r\n which is 0x0d 0x0a (CR, LF). This file is used as a raw HTTP response, and the Chrome error suggests strongly that this is your problem, or this: > > After the last header, you *must* have two sets of of those, e.g.: > > HTTP/1.0 503 Service Unavailable [0d][0a]Content-Type: text/html[0d][0a]Cache-Control: no-cache [0d][0a]Connection: close[0d][0a][0d][0a]<html>... > > After that point, you're in the body, so pretty much anything goes, just keep the whole thing under 16K. > > Definitely don't count on an indicator of "file format" to prove that this is correct. > > Copy one of the other files and edit with vim. You'll see the ^M in the headers, which of course is the same as \r. The \n doesn't show in vim since that's the normal newline.