Passa al contenuto principale

5. Evaluation (Valutazione)

Salvo esclusione di seguito, un destinatario cache o server di origine DEVE valutare le precondizioni di richiesta ricevute dopo aver eseguito con successo i suoi normali controlli di richiesta e appena prima di elaborare il contenuto della richiesta (se presente) o di eseguire l'azione associata al metodo di richiesta. Un server DEVE ignorare tutte le precondizioni ricevute se la sua risposta alla stessa richiesta senza tali condizioni sarebbe un codice di stato diverso da 2xx (Successful) o 412 (Precondition Failed). In altre parole, i reindirizzamenti e i fallimenti hanno la precedenza sulla valutazione delle precondizioni nelle richieste condizionali.

Un server che non è il server di origine per la risorsa di destinazione e non può fungere da cache per le richieste sulla risorsa di destinazione NON DEVE valutare i campi di intestazione di richiesta condizionale definiti da questa specifica, e DEVE inoltrarli se la richiesta viene inoltrata, poiché il client generatore intende che vengano valutati da un server che può fornire una rappresentazione corrente. Allo stesso modo, un server DEVE ignorare i campi di intestazione di richiesta condizionale definiti da questa specifica quando ricevuti con un metodo di richiesta che non comporta la selezione o la modifica di una rappresentazione selezionata, come CONNECT, OPTIONS o TRACE.

Si noti che le estensioni del protocollo possono modificare le condizioni in cui le precondizioni vengono valutate o le conseguenze della loro valutazione. Ad esempio, la direttiva di controllo cache "immutable" (definita da [RFC8246]) modifica i controlli di pre-valutazione in modo che una risposta 304 (Not Modified) possa essere restituita senza rivalidazione.

Sebbene i campi di intestazione di richiesta condizionale siano definiti come utilizzabili con il metodo HEAD (per mantenere la coerenza della semantica di HEAD con quella di GET), non ha senso inviare un HEAD condizionale poiché una risposta di successo ha all'incirca le stesse dimensioni di una risposta 304 (Not Modified) ed è più utile di una risposta 412 (Precondition Failed).