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 infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to