Passa al contenuto principale

Appendix B. Notes on HTTP Client Compatibility (Note sulla compatibilità dei client HTTP)

Appendice B. Notes on HTTP Client Compatibility (Note sulla compatibilità dei client HTTP)

WebDAV è stato progettato per essere, ed è risultato essere, retrocompatibile con HTTP 1.1. I metodi PUT e DELETE sono definiti in HTTP e quindi possono essere utilizzati da client HTTP così come da client consapevoli di WebDAV, ma le risposte a PUT e DELETE sono state estese in questa specifica in modi per cui solo un client WebDAV sarebbe completamente preparato. Sono state sollevate alcune preoccupazioni teoriche sul fatto che tali risposte causino problemi di interoperabilità con client solo HTTP, e questa sezione affronta tali preoccupazioni.

Poiché qualsiasi client HTTP dovrebbe gestire i codici di stato di livello 400 e 500 non riconosciuti come errori, i seguenti nuovi codici di stato non dovrebbero presentare problemi: 422, 423 e 507 (424 è anche un nuovo codice di stato ma appare solo nel corpo di una risposta Multistatus.) Quindi, ad esempio, se un client HTTP tentasse di eseguire PUT o DELETE su una risorsa bloccata, la risposta 423 Locked dovrebbe risultare in un errore generico presentato all'utente.

La risposta 207 Multistatus è interessante perché un client HTTP che emette una richiesta DELETE a una collezione potrebbe interpretare una risposta 207 come un successo, anche se non si rende conto che la risorsa è una collezione e non può capire che l'operazione DELETE potrebbe essere stata un fallimento completo o parziale. Quell'interpretazione non è del tutto giustificata, perché una risposta di livello 200 indica che il server "ha ricevuto, compreso e accettato" la richiesta, non che la richiesta ha portato a un successo completo.

Un'opzione è che un server potrebbe trattare un DELETE di una collezione come un'operazione atomica e utilizzare 204 No Content in caso di successo, o qualche risposta di errore appropriata (livello 400 o 500) per un errore. Questo approccio massimizzerebbe infatti la retrocompatibilità. Tuttavia, poiché i test di interoperabilità e le discussioni del gruppo di lavoro non hanno rilevato alcuna istanza di client HTTP che emettono una richiesta DELETE contro una collezione WebDAV, questa preoccupazione è più teorica che pratica. Pertanto, i server probabilmente avranno completamente successo nell'interoperare con i client HTTP anche se trattano qualsiasi richiesta DELETE di collezione come una richiesta WebDAV e inviano una risposta 207 Multi-Status.

In generale, le implementazioni dei server sono incoraggiate a utilizzare le risposte dettagliate e altri meccanismi definiti in questo documento piuttosto che apportare modifiche per preoccupazioni di interoperabilità teoriche.