Appendix D. Lock-null Resources (Risorse lock-null)
Appendice D. Lock-null Resources (Risorse lock-null)
Il modello WebDAV originale per il blocco di URL non mappati creava "risorse lock-null". Questo modello era troppo complicato e sono stati scoperti alcuni problemi di interoperabilità e implementazione. Il nuovo modello WebDAV per il blocco di URL non mappati (vedere Sezione 7.3) crea "risorse vuote bloccate". Le risorse lock-null sono deprecate. Questa sezione discute brevemente il modello originale perché i client DEVONO essere in grado di gestire entrambi i modelli.
Nel modello originale "risorsa lock-null", che non è più raccomandato per l'implementazione:
-
Una risorsa lock-null a volte appariva come "Not Found". Il server risponde con un 404 o 405 a qualsiasi metodo tranne PUT, MKCOL, OPTIONS, PROPFIND, LOCK, UNLOCK.
-
Una risorsa lock-null tuttavia appare come membro della sua collezione genitore.
-
Il server rimuove completamente la risorsa lock-null (il suo URI diventa non mappato) se il suo blocco scompare prima che venga convertita in una risorsa regolare. Ricorda che i blocchi scompaiono non solo quando scadono o vengono sbloccati, ma vengono anche rimossi se una risorsa viene rinominata o spostata, o se qualsiasi collezione genitore viene rinominata o spostata.
-
Il server converte la risorsa lock-null in una risorsa regolare se una richiesta PUT all'URL ha successo.
-
Il server converte la risorsa lock-null in una collezione se una richiesta MKCOL all'URL ha successo (sebbene l'esperienza di interoperabilità abbia mostrato che non tutti i server hanno seguito questo requisito).
-
I valori delle proprietà erano definiti per le proprietà DAV:lockdiscovery e DAV:supportedlock ma non necessariamente per altre proprietà come DAV:getcontenttype.
I client possono facilmente interoperare sia con i server che supportano il vecchio modello "risorse lock-null" che con il modello raccomandato di "risorse vuote bloccate" tentando solo PUT dopo un LOCK a un URL non mappato, non MKCOL o GET.
D.1. Guidance for Clients Using LOCK to Create Resources (Guida per i client che utilizzano LOCK per creare risorse)
Un client WebDAV implementato secondo questa specifica potrebbe trovare server che creano risorse lock-null (implementati prima di questa specifica utilizzando [RFC2518]) così come server che creano risorse vuote bloccate. La risposta alla richiesta LOCK non indicherà che tipo di risorsa è stata creata. Ci sono alcune tecniche che aiutano il client a gestire entrambi i tipi.
-
Se il client desidera evitare di creare accidentalmente risorse lock-null o vuote bloccate, un'intestazione "If-Match: *" può essere inclusa con le richieste LOCK per impedire al server di creare una nuova risorsa.
-
Se una richiesta LOCK crea una risorsa e il client successivamente vuole sovrascrivere quella risorsa utilizzando una richiesta COPY o MOVE, il client dovrebbe includere un'intestazione "Overwrite: T".
-
Se una richiesta LOCK crea una risorsa e il client decide quindi di liberarsi di quella risorsa, una richiesta DELETE dovrebbe fallire su una risorsa lock-null e dovrebbe essere utilizzato UNLOCK invece. Ma con una risorsa vuota bloccata, UNLOCK non fa scomparire la risorsa. Pertanto, il client potrebbe dover provare entrambe le richieste e ignorare un errore in una delle due richieste.