Without specifying the content type the http puts have the content type

"application/x-www-form-urlencoded" by default.

This can lead to the caldecott web app trying to parse the data as
a querry string.

I'm guessing there are safety checks that are built in to try to prevent
parsing binary data in rack which makes this work most of the time.

However if the data being sent is over the max rack form size or the binary
data is similar to a http post submit the tcp tunneling will fail with an
error similar to the below on the server side.

"!! Unexpected error while processing request rails ....."

By specifying a binary content type this parsing doesn't take place.