skip to Main Content

AWS CloudFront and Azure CDN can dynamically compress files under certain circumstances. But do they also support dynamic compression for HTTP range requests?
I couldn’t find any hints in the documentations only on the Google Cloud Storage docs.

3

Answers


  1. Chosen as BEST ANSWER

    Some tests have shown when dynamic compression is enabled in AWS CloudFront the range support is disabled. So Range and If-Range headers are removed from all request.


  2. Yes, Azure CDN also supports dynamic compression for HTTP range requests wherein it is known as ‘object chunking’. You can describe object chunking as dividing the file to be retrieved from the origin server/resource into smaller chunks of 8 MB. When a large file is requested, the CDN retrieves smaller pieces of the file from the origin. After the CDN POP server receives a full or byte-range file request, the CDN edge server requests the file from the origin in chunks of 8 MB.

    After the chunk arrives at the CDN edge, it's cached and immediately served to the user. The CDN then prefetches the next chunk in parallel. This prefetch ensures that the content stays one chunk ahead of the user, which reduces latency. This process continues until the entire file is downloaded (if requested), all byte ranges are available (if requested), or the client terminates the connection.

    Also, this capability of object chunking relies on the ability of the origin server to support byte-range requests; if the origin server doesn’t support byte-range requests, requests to download data greater than 8mb size will fail.

    Please find the below link for more details regarding the above: –

    https://learn.microsoft.com/en-us/azure/cdn/cdn-large-file-optimization#object-chunking

    Also, find the below link for more clarification on the types of compression and the nature of compression for Azure CDN profiles that are supported: –

    https://learn.microsoft.com/en-us/azure/cdn/cdn-improve-performance#azure-cdn-standard-from-microsoft-profiles

    Login or Signup to reply.
  3. Azure:

    Range requests may be compressed into different sizes. Azure Front Door requires the content-length values to be the same for any GET HTTP request. If clients send byte range requests with the accept-encoding header that leads to the Origin responding with different content lengths, then Azure Front Door will return a 503 error. You can either disable compression on Origin/Azure Front Door or create a Rules Set rule to remove accept-encoding from the request for byte range requests.

    See: https://learn.microsoft.com/en-us/azure/frontdoor/standard-premium/how-to-compression

    AWS:

    HTTP status code of the response

    CloudFront compresses objects only when the HTTP status code of the response is 200, 403, or 404.

    –> Range-Request has status code 206

    See:
    https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/206

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search