-
-
Notifications
You must be signed in to change notification settings - Fork 242
Description
CDNs (mostly Azure Front Door) is using HTTP Range Requests to retrieve data from Origin when caching enabled.
Express should ignore Range:
requests header when gzip
compression is in place since Express is unable to respond a HTTP/206
compliant answer with the right computed Content-Range
header in the response that is taking the compressed data length into account.
A fair compliant workaround is to, in that very case of compression where computing Content-Range
values would be too complex, ignore client's Range:
header in the request, and answer the whole compressed content in a HTTP/200 response.
Handling Range:
headers is optional so answering a HTTP/200
is OK.
Answering a HTTP/206
with wrong Content-Range
values is notOK.
Meanwhile another workaround is to disable compression and make CDN handle it, or disable CDN caching, however it would be fair to expect Express to return a compliant HTTP response in any case.
References:
Details and highlighting Express behavior:
https://github.com/DanielLarsenNZ/nodejs-express-range-headers