node-solid-server
node-solid-server copied to clipboard
Review E-Tag support
From https://github.com/Otto-AA/solid-acl-utils/issues/1#issuecomment-560094697 :
NSS support for etags and if-match is currently not available (weak etags -> if-match gets ignored; etags not provided on GET requests; if-match maybe completely ignored by NSS)
ETag-based versioning is pretty basic, important functionality for a pod server. We should find out if it actually works properly in NSS currently, and maybe @kjetilk can also add it to the Solid test-suite! :)
I will describe what I've experienced, so it's easier for you to understand the status quo. If you can't reproduce it, I can add more information on the context: HEAD request -> returns weak etag GET request -> returns no etag at all
Because only a weak etag is available, we can't use the If-Match
header at all. ("However, in an If-Match header, weak entity tags will never match." according to MDN).
There are two related issues, but both have been closed without being resolved (I think it wasn't a priority back then) #644 #268
You're welcome to take a look at the home-brewed strong ETag support in Achieve. I'd love to have an outside review of that anyway. :) https://github.com/highlevellogic/achieve/blob/master/achieve.js Browser caching has been quite reliable.
If you think it looks interesting, I can pull ETag support out into a separate module.