This is an old revision of the document!
curl can be used to send a compressed HTTP request - HTTP requests are not usually compressed, only the responses are, but the standard does not prohibit setting the Content-Encoding header to gzip, deflate or others and then sending a compressed body.
To send a compressed POST HTTP request, first create a file containing the body that shall be sent, say, request.txt and then compress the file using gzip:
gzip request.txt
For this example, the request.txt file contains POST key-value data such that the request content type will be set to application/x-www-url-form-urlencoded.
The command will create a compressed file request.txt.gz. Afterward, the curl command shall read:
curl -v --data-binary @request.txt.gz "Content-Type: application/x-www-url-form-urlencoded" -H "Content-Encoding: gzip" -X POST http://server.tld/
where:
-v turns on verbosity,--data-binary @request.txt.gz will send the request.txt.gz file as the request body (mind the @, it is necessary),Content-Type is set to application/x-www-url-form-urlencoded indicating that the request.txt.gz file contains POST key-value data,Content-Encoding is set to gzip,http://server.tld/For the contact, copyright, license, warranty and privacy terms for the usage of this website please see the contact, license, privacy, copyright.