Github user ngorchilov commented on a diff in the pull request: https://github.com/apache/trafficserver/pull/330#discussion_r44505183 --- Diff: proxy/http/HttpTransactCache.cc --- @@ -1299,7 +1299,7 @@ HttpTransactCache::match_response_to_request_conditionals(HTTPHdr *request, HTTP ink_time_t lm_value = response->get_last_modified(); // we won't return NOT_MODIFIED if Last-modified is too recent - if ((lm_value == 0) || (request->get_if_modified_since() < lm_value)) { --- End diff -- Why Akamai are using such technique is beyond my knowledge, but regarding ATS logic I have the following comments/opinion: 1. when running in forwarding mode, especially in TPROXY, it shall be as less intrusive as possible, instead of being standards enforcement facility and breaking unknown (but in tens if not hundreds of thousands) number of services/sites that are working somehow otherwise. Imagine the case (our use case, actually) when running in transparent forwarding mode for ISPs ranging from few tens of thousands to few million subscribers. End-users don't care if their ISP is willing to save some bandwidth or not. They call the customer support and complain - this online facility works for me via your competitor, make it work for me or I quit. If ATS community is serious to support forwarding mode, it shall follow the logic of best commercial solutions - PeerApp or alike - they NEVER break services intentionally, just because they can :) 2. Regarding If-modified-since - I don't think standards somehow imply that server MUST respond with 304. Especially with the edge case of If-modified-since equal to Last-modified - itâs pretty legit and unavoidable race condition - while I (the server) started serving you the last version some other subprocess finished updating the object in the very same second. IMHO, ATS shall forward the 200 response, especially if triggered by client If-modified-since, not by IMS, at least while running in proxy.config.http.cache.when_to_revalidate = 4, if this makes any difference.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---