Браузер запрашивает my.js и говорит что поддерживает компрессию и какую (accept-encoding заголовок), сервер отсылает запрос с наиболее подходящей content-encoding (например gzip), передаётся фактически поток байт gzip-нутый, браузер его на своей стороне разархивирует. Для кода это прозрачно, сжатие выполняется на транспортном уровне