DataPower FSH (FrontSide Handler) provide the Compression field.
11. Set Compression to enable or disable the negotiation of GZIP compression.
Important is the word "negotiation" here.
If you are using a browser to access a DataPower service, then your browser and DataPower do the negotiation for you.
Nothing needs to be done by you.
So what if using "curl" to access a DataPower service?
From "curl" manpage:
(HTTP) Request a compressed response using one of the algorithms
libcurl supports, and return the uncompressed document. If this
option is used and the server sends an unsupported encoding,
curl will report an error.
You can check whether "your curl" does support gzip compression by executing "curl -V".
If you find "libz" amount the "Features" then it can.
Again, "--compressed" does a negotiation, no guarantee that both sides (curl/DataPower) will agree on compression.
So how can you "see" whether compression was used?
Yes, a packet capture will allow you to see this.
But there is a simpler method, use "curl -v" (for "verbose" output).
If the HTTP response from DataPower contain "Content-Encoding: gzip" header entry, then response was returned compressed.
I just turned Compression on on coproc2 service FSH and did send ab.xml (<a>1<b>2</b>3</a>) with double.xsl stylesheet:
$ coproc2 double.xsl ab.xml http://dp1-l3:2223 -v --compressed ;echo
* About to connect() to dp1-l3 port 2223 (#0)
* Trying 18.104.22.168... connected
* Connected to dp1-l3 (22.214.171.124) port 2223 (#0)
> POST / HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/126.96.36.199 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: dp1-l3:2223
> Accept: */*
> Accept-Encoding: deflate, gzip
> xsl: H4sICCV0GU8AA2RvdWJsZS54c2wAjZCxbsQgEER7fwWih83pKltwX5DuUlyL8Dq2BAbBXrD/PuBLckmXcnfezKxWbdkNmXaHeUYk9oEpL2HV/CRfeMfY5t2ahwppPhPFAaCUIstZhvQOp77v4XZ9hbdk1jyF5J+WMf5xjIZMDAWTtMEDboRr68nN8DMJdOhxJRETTsuGWfMx8u5SGdXuDHeKd2LBLyRqixjROpMMHQfvmDmDxjL2bSD00RlC5g3ZWXPgh65q0AM8KBviLsLEcq23pLnk8A9VwVeKgt9VbdM9Vs+3XrpPG5mOnmgBAAA=
> Content-Length: 18
> Content-Type: application/x-www-form-urlencoded
< HTTP/1.1 200 OK
< X-Backside-Transport: FAIL FAIL
< Connection: Keep-Alive
< Content-Encoding: gzip
< Transfer-Encoding: chunked
< Content-Type: text/xml
* Connection #0 to host dp1-l3 left intact
* Closing connection #0
As you can see ("< Content-Encoding: gzip") compression happened.