[squid-users] Fail and empty response instead cached resource

Amos Jeffries squid3 at treenet.co.nz
Wed Jan 22 06:11:50 UTC 2020

On 22/01/20 1:08 am, Kuznetsov Sergei wrote:
> If I get you right, is this a problem with the web server.

Yes, exactly so.

> I tried to explain to them with about the same logic, but they could not
> reproduce the error and accordingly do not recognize the existence of
> the problem.

To reproduce, just deliver a valid If-None-Match header to their server.

  GET /js/jquery-1.4.2.min.js HTTP/1.1
  Host: tehspb.kodeks.ru
  User-Agent: squidclient/4.9
  Accept: */*
  Connection: close
  If-None-Match: "800439-72175-1534779018000"

  HTTP/1.1 304 Not Modified
  Server: nginx/1.4.6 (Ubuntu)
  Date: Wed, 22 Jan 2020 05:48:20 GMT
  Content-Type: text/javascript; charset=UTF-8
  Content-Length: 0
  Connection: close
  X-PaperRoute: Node
  ETag: "800439-72175-1534779018000"
  last-modified: Mon, 20 Aug 2018 15:30:18 GMT
  Access-Control-Allow-Origin: *
  Cache-Control: no-cache

Aaron's analysis in comment #11 of that bug report Alex linked to is
exactly correct. The Content-Length header should not be present at all
in these 304. The case where a Content-Length header would be valid here
is also the case where the ETag should have changed - meaning the status
should be 200 and the new content+ETag delivered (not a 304 at all).

IIRC we had a more recent proposal for some work towards identifying
these broken 304 cases and re-fetching the content. But no idea whether
that has made progress past the early brainstorming.


More information about the squid-users mailing list