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 (elementi include võib kasutada koos elemendiga allprop, 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).

HTTP-meetod PROPFIND on täpsustatud dokumendi RFC 4918 jaotises 9.1, mille on koostanud Internet Engineering Task Force (IETF) ja World Wide Web Consortium (W3C).

Meetodi PROPFIND kirjeldus

pooleliolev töö

Näide HTTP-meetodi PROPFIND kohta

Request header:
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
Response header:
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