Disable partial GET request in client/server side?
1. RTC client made a partial GET request.
2. Squid would not cache HTTP 206 response.
So, is it possible to disable partial GET request in client/server side?
Accepted answer
From some digging, partial GETs appear to have been implemented to support failed content downloads due to flaky connections.
https://jazz.net/jazz/web/projects/Rational%20Team%20Concert#action=com.ibm.team.workitem.viewWorkItem&id=201208
So as you noted, working around partial GETs would mean that even if the client had downloaded part of a file already and now wanted to resume from a given offset, the server would just ignore the range headers and send back the entire file.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3
So I guess for starters, the customer should only use the squid workaround if they are okay with what appears to be additional load/traffic.
and
If your SQUID cache resides on the client side of a flaky network connection, converting the partial GETs to full GETs could potentially defeat the content retry mechanism, or at least make it less effective.
2 other answers
Comments
NOTE: These get requests could also be coming from feeds. And it may not be a good idea to cache these requests. reason being is that the results of the queries can keep changing quicly, so caching these type of requests may add a slight performance degradation. However until tested in your environment this is only speculative.
Thanks for the reply, but no, these partial content requests come from IVersionedContentService, and, Squid can't cache the responses to them.
Currently there is an effort to improve the administration of services. i would suggest openning an enhancement request.
Comments
Actually, by setting Squid directive range_offset_limit to none, we can have Squid to remove the partial request header, looks like working fine to us.
Never worked with the range_offset_limit parameter before. After reviewing http://www.squid-cache.org/Doc/config/range_offset_limit/ looks to be a cool solution. By setting this, did you see any indication of improved performance.
@jmlennon can you take a look at this. Any concerns / comments
In our case, yes, the Squid cache hit rate is higher than before now.
BTW, to avoid unnecessary impact to the system, we created an ACL for IVersionedContentService.