Ho un server Web che fornisce un ETag per un URL particolare. Quando il browser esegue una richiesta per questo URL, fornisce l'intestazione http "If-None-Match" con il valore ETag contenuto nella risposta precedente dal server per quell'URL. Ora, se aggiungo programmaticamente l'intestazione della richiesta "If-Modified-Since" e lo imposto in una data futura o passata (non importa), il browser interrompe l'invio dell'header "If-None-Match". Ho visto questo in FireFox e Chrome (non testato con nessun altro browser). Non posso concludere dalle specifiche HTTP/1.1 che questo dovrebbe essere il caso. Perché succede?Se modificato, poiché sostituisce Se-Nessuno-Match nel browser
Ecco un semplice esempio di codice che riprodurrà lo scenario. Il codice presuppone che il server risponda con un'intestazione Etag.
var request = new XMLHttpRequest();
request.open("GET", someUrl, true);
request.onreadystatechange = function(){};
// This statement makes the browser stop sending the "If-None-Match" header
request.setRequestHeader("If-Modified-Since", "Sat, 29 Oct 1994 19:43:31 GMT");
request.send(null);
Si consiglia di leggere invece http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p4-conditional-21.html. –