[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