HEAD responses contain body

Jonathan Rudenberg jonathan at titanous.com
Thu Jun 13 16:09:43 UTC 2013

RFC 2616 section 9.4[1] states:

> The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response.

A HEAD request against this simple Rack app running on unicorn-4.6.2:

    require 'rack'

    run lambda { |env| [200, {}, []] }

Looks like this on the wire:

    HEAD / HTTP/1.1
    User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8x zlib/1.2.5
    Host: localhost:8080
    Accept: */*

    HTTP/1.1 200 OK
    Date: Thu, 13 Jun 2013 16:04:55 GMT
    Status: 200 OK
    Connection: close
    Transfer-Encoding: chunked


    HTTP/1.1 500 Internal Server Error

As you can see, not only is there a zero-length chunked encoding body, but for some unknown reason there is a 500 response with no body as well.

Please cc any responses directly to me, as I do not subscribe to this list.



[1] https://tools.ietf.org/html/rfc2616#section-9.4

More information about the mongrel-unicorn mailing list