I was trying to answer the question of “Which CDNs are doing compression from edge to client?”.
The idea being that a CDN should, by default, compress text files. This would be part of their “speeding up the web” strategy.
select * from (
select count(*),
lower(regexp_extract(regexp_extract(resp_content_type,r'(^[\w\/\-]+)'),r'\/(?:x-)?(.*)')) as content_type,
resp_content_encoding,
_cdn_provider
from [httparchive:runs.latest_requests]
where _cdn_provider !=''
group by content_type,
resp_content_encoding,
_cdn_provider
) foo
where regexp_match(content_type,r'javascript|css|plain')
and (resp_content_encoding = 'gzip' or resp_content_encoding = '')
The query above will:
- Normalize content types (for example, turn ‘application/x-javascript’ to ‘javascript’)
- Only return results were the content encoding is gzip or none (I don’t care about deflate…)
- Only return results where a CDN was used.
- Count the number of requsts (for text, javascript, and css) that were gzip compressed versus not, grouping by content type and CDN.
I tossed the results in an Excel sheet to create a pivot chart, here are the results
The majority of CDNs are compressing >90% of their text assets. This is good. However, I didn’t do any analysis on the size of the object at all (ie, are they compressing files that are already small).