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 [email protected] or file a JIRA ticket
with INFRA.
---