Well, after some searching and IRC chat, I found a solution, but I'm not 100% sure what the reason is. It seems that keep-alives were not sent enough to keep in touch. Lay out the solution here, I hope I can help someone out.
What helped me add
--keepalive-time 2
Curl Explanation
--keepalive-time <seconds>
This option sets the time during which the connection should remain in standby mode before sending keepalive probes and the time between individual keepalive probes. It is currently effective for operating systems, TCP_KEEPIDLE and TCP_KEEPINTVL Parameters (which means Linux, recent AIX, HP-UX, etc.). This option does not work if --no-keepalive is used. (Added in 7.18.0)
If this parameter is used several times, the latter will be used. If unpecified, the default option is 60 seconds.
It looks like the default was too high to open my connection.
Here is the complete command I used to call me
curl URL -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: en-US,en;q=0.8,et;q=0.6,nl;q=0.4' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Connection: keep-alive' --compressed -v --keepalive-time 2
And I am running this version of curl on osx
curl 7.43.0 (x86_64-apple-darwin15.0) libcurl/7.43.0 SecureTransport zlib/1.2.5 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz UnixSockets
If someone would like this parameter to be used in PHP curl, the -keepalive-time option is available with PHP 5.5. You can use it as follows:
curl_setopt($connection, CURLOPT_TCP_KEEPALIVE, 1); curl_setopt($connection, CURLOPT_TCP_KEEPIDLE, 2);
Hope this helps someone who is struggling with the same problem!