Squid annoyed me. Again. I had the experience that Squid pings servers even though it shouldn't do. Ok, annoying, but you can cope with that (although it produces timeouts from time to time).
I can live with squid sending out requests two or more times even though there really isn't a need to - looks like it's internal GET processing get's fucked up when some timeout on browser-side occurs.
But what really did it for me was it's stupid HEAD handling. It caches HEAD requests. Yeah, stupid idea, they were originally invented for bandwidth saving requests. They are supposed to go out and check the server, and not be cached, because if the document didn't change the client won't need to fetch it, but it needs to know wether it changed at all.
Ok, set up an acl rule for HEAD methods and set it no_cache (actually what braindead idiot invented the "nocache deny ACL" syntax with ACL describing pages that should actually not be cached? This is arse backwards two times!). Should work. Doesn't work. If there was a GET or POST request before, a HEAD will deliver data from the cache, even though it was set nocache. Stupid. Bad. Ugly.
So now I had to come up with an additional rule to suppress only those GET requests that may lead to bad HEAD requests (luckily this was possible because I was having Problems with AmphetaDesk and it's updates, and AmphetaDesk fills in the Browser name). So now I don't cache HEAD requests and don't cache results for AmphetaDesk. Does it work? Not really, if there are still documents in the cache of squid, it delivers HEAD from those documents, regardless of configuration. Damn.
So I had to remove them. That's what the PURGE method is for, right? Wrong. PURGE only purges Documents, not cached headers. So you first have to GET the document, than to PURGE it, to remove it's cached HEAD requests. Oh-my-god.
And now I still have some TCPMEMHIT in the log, although it shouldn't cache. Looks like it handles memory caching different than disc caching. Oh, and this is reproduceable with 2.2 and 2.4. Damn. Sucker.
Couldn't live be made actually easier for sysadmins? Please?