Github user ngorchilov commented on a diff in the pull request:
https://github.com/apache/trafficserver/pull/330#discussion_r44374071
--- 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 --
This exact logic - forcing 304 on origin 200 wheb last-modified =
if-modified-since - breaks Akamai live streaming.
Their logic is simple: if-modified-since <timestamp> means "give me updates
on this stream since <timestamp>". response is 200 OK, last-modified
<same_timestamp>, which means "here's what's new since <timestamp>".
Currently you can't watch akamized live streams via ATS in forwarding proxy
mode, as from second request onwards it uses if-modified=last-modified
request/response logic for stream updates.
This is why my suggestion is to treat the edge case of
if-modified=last-modified as HTTP_STATUS_OK and allow client to get the new
body.
---
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.
---