The "http" report processor does not specify the "compress" option when posting the report, so puppetserver does not compress it. The processor should specify that option (maybe conditional based on an http_compression property), so that reports are compressed between puppetserver and the HTTP(S) server. The puppetdb terminus already does this when submitting reports/catalogs/facts/etc to puppetdb. See https://github.com/puppetlabs/puppetdb/blob/1262e5f1165c00cb22b51ab5fab5649bda759a64/puppet/lib/puppet/util/puppetdb/command.rb#L68
For this ticket, just add :compress => :gzip to the options passed to client.post in lib/puppet/reports/http.rb.
The "http" report processor does not specify the "compress" option when posting the report, so puppetserver does not compress it. The processor should specify that option (maybe conditional based on an http_compression property), so that reports are compressed between puppetserver and the HTTP(S) server. The puppetdb terminus already does this when submitting reports/catalogs/facts/etc to puppetdb. See https://github.com/puppetlabs/puppetdb/blob/1262e5f1165c00cb22b51ab5fab5649bda759a64/puppet/lib/puppet/util/puppetdb/command.rb#L68
For this ticket, just add {{:compress => :gzip}} to the options passed to {{client.post}} in {{lib/puppet/reports/http.rb}}.
Reports are highly compressible. An empty catalog compresses from 6512 bytes to 1119 bytes, about 1/6th the size. A more typical catalog compresses from 66021785 bytes to 4721897, which is about 1/13th the size.