[squid-dev] Planning for experiments with Digest, Link and metalink files.

Eliezer Croitoru eliezer at ngtech.co.il
Thu Jan 28 08:18:29 UTC 2016


I have been working for some time on experimenting things related to 
metalinks files and I have couple things in my mind about it.
Now I am running for more then 4 month my local proxy service with 
SHA256 live digesting of all traffic using an eCAP module.
It's a small service and cannot take too much weight but it seems that 
with digest enabled or disabled squid doesn't loose enough speed that I 
seem to care.

Now I wanted to move into another side of my experiment and to implement 
some web service that uses the metalinks files data.
Since metalinks are for files or static objects the first thing is a 
simple file server.

I do not know what header to use for the digest hashes? I have seen that 
fedora mirror server uses "Digest: TYPE=hash" but from what I remember 
Henrik was talking about Content-MD5 and similar.
I can implement both Content-TYPE headers and Digest but what standards 
are the up-to-date?

Also the other question, how should the If-None-Match or another 
conditional should be used(since it was meant for ETAG)?

For now I am only working on a full hash match leaving aside any partial 
content pieces matching.

The options to validate file hash vs a static web service are:
- via some POST request(which can return a 304\302\200)
- via special if-none-match header

Also I had in my mind a situation that the client has couple hashes and 
want to verify a full match to the whole set or to at-least one from a 
set. What do you think should be done?

The current implementations relies on the fact that everybody uses the 
same default hash but I am almost sure that somewhere in the future 
people would like to run Digest match to some kind of salted algorithm 
so I am considering what would be the right way to allow\implement 
support for such cases.
Am I dreaming too much?

Another issue is a PUT requests, does it makes sense to attach some 
Digest or other headers by the user that will be stored with the file 
metadata or metalink file? compared.. to uploading two files one for the 
object and another one for the metalink file?

Thanks,
Eliezer


More information about the squid-dev mailing list