HTTP-requests are sent with an OS X module called CFNetwork, which automatically adds some headers if they are undefined. You can of course override these if you want to.
We also add some headers automatically when you have body data to send, because calculating Content-Length is a bit meh to do manually.