PROPFIND
HTTP meetod
HTTP-meetodi PROPFIND spetsifikatsioon
Metoodika PROPFIND otsib Request-URI poolt identifitseeritud ressursil määratletud omadusi, kui ressursil ei ole sisemisi liikmeid, või Request-URI poolt identifitseeritud ressursil ja potentsiaalselt selle liikmeressurssidel, kui ressurss on kollektsioon, millel on sisemised liikme-URLid. Kõik DAV-konformsed ressursid PEAVAD toetama PROPFIND-meetodit ja propfind
XML-elementi (punkt 14.20) koos kõigi selle elemendi kasutamiseks määratletud XML-elementidega.
Klient PEAB esitama PROPFIND-taotlusega koos Depth-pealkirja väärtusega "0", "1" või "lõpmatus". Serverid PEAVAD toetama "0" ja "1" sügavuse taotlusi WebDAV-komplektsete ressursside puhul ja PEAVAD toetama "lõpmatuse" taotlusi. Praktikas VÕIB lõpmatu sügavusega päringute tugi olla välja lülitatud, kuna selle käitumisega on seotud tulemuslikkuse ja turvalisusega seotud probleemid. Servereid PEAB käsitlema ilma Depth-pealkirjata taotlust nii, nagu oleks lisatud Depth: infinity
-pealkiri.
Klient võib esitada propfind
XML-elemendi taotluse meetodi kehas, mis kirjeldab, millist teavet taotletakse. See on võimalik:
- pärida konkreetseid omaduste väärtusi, nimetades soovitud omadused
prop
elemendis (server VÕIB ignoreerida omaduste järjestust siin), - pärida omaduste väärtusi nende omaduste jaoks, mis on määratletud käesolevas spetsifikatsioonis (vähemalt) pluss surnud omadused, kasutades elementi
allprop
(elementiinclude
võib kasutada koos elemendigaallprop
, et anda serverile korraldus lisada ka täiendavaid reaalseid omadusi, mida muidu ei oleks tagastatud), - Küsida kõigi ressursil määratletud omaduste nimede loetelu, kasutades elementi
propname
.
Klient võib jätta taotluse keha esitamata. Tühja PROPFIND päringu keha PEAB käsitlema nagu allprop
päringut.
Märkige, et allprop
ei tagasta kõigi elavate omaduste väärtusi. WebDAV-serveritel on üha sagedamini kulukalt arvutatud või pikad omadused (vt [RFC3253] ja [RFC3744]) ja need ei tagasta juba kõiki omadusi. Selle asemel võivad WebDAV-kliendid kasutada propname
päringuid, et teada saada, millised elusad omadused on olemas, ja nõuda väärtuste kättesaamisel nimelisi omadusi. Mujal defineeritud elava omaduse puhul võib see määratlus määrata, kas see elav omadus tagastatakse allprop
päringutes või mitte.
Kõik serverid PEAVAD toetama vastuse tagastamist, mille sisutüüp on text/xml
või application/xml
ja mis sisaldab multistatus
XML-elementi, mis kirjeldab erinevate omaduste päringute tulemusi.
Kui omaduse pärimisel esineb viga, PEAB vastus sisaldama nõuetekohast veatulemust. Taotlus sellise omaduse väärtuse saamiseks, mida ei ole olemas, on viga ja seda PEAB märkima response
XML-elemendiga, mis sisaldab 404 (Not Found) staatuse väärtust.
Sellest tulenevalt PEAB kogumi ressursi multistatus
XML-element sisaldama response
XML-elementi iga kogumi liikme URL-i kohta, olenemata sellest, millise sügavusega seda taotleti. See EI TOHI sisaldada ühtegi response
elementi ressursside jaoks, mis ei ole WebDAV-konformsed. Iga response
element PEAB sisaldama href
elementi, mis sisaldab selle ressursi URL-i, mille kohta prop
XML elemendis olevad omadused on määratletud. Kollektsiooni ressursi PROPFIND-i tulemused tagastatakse kindla nimekirjana, mille kirjete järjekord ei ole oluline. Pange tähele, et ressursil võib olla ainult üks väärtus antud nimega omadusele, seega võib see omadus ilmuda PROPFIND-vastustes ainult üks kord.
Objektile võib kehtida juurdepääsukontroll. allprop
ja propname
päringute puhul, kui printsipaalil ei ole õigust teada, kas konkreetne omadus on olemas, siis VÕIB see omadus vastusest vaikselt välja jätta.
Mõningaid PROPFINDi tulemusi VÕIB ettevaatlikult vahemällu panna, kuna enamiku omaduste jaoks puudub vahemälu valideerimismehhanism. See meetod on nii turvaline kui ka idempotentne (vt [RFC2616] punkt 9.1).
Meetodi PROPFIND kirjeldus
Näide HTTP-meetodi PROPFIND kohta
PROPFIND /data HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/58.0.3029.110 Safari/537
Depth: 1
Content-Type: text/xml; charset="utf-8"
Accept-Language: de-DE,de;q=0.5
Connection: keep-alive
HTTP/1.1 207 Multi-Status
Content-Type: text/xml; charset="utf-8"
Content-Length: 453
Date: Mon, 31 July 2023 14:58:12 GMT
Server: Apache/2.4.7 (Ubuntu)
Cache-Control: no-cache