PROPFIND

HTTP-metode

Spesifikasjon av HTTP-metoden PROPFIND

Propfind-metoden henter egenskaper som er definert på ressursen som er identifisert av Request-URI, hvis ressursen ikke har noen interne medlemmer, eller på ressursen som er identifisert av Request-URI og potensielt dens medlemsressurser, hvis ressursen er en samling som har interne medlems-URL-er. Alle DAV-kompatible ressurser MÅ støtte PROPFIND-metoden og XML-elementet propfind (avsnitt 14.20) sammen med alle XML-elementer som er definert for bruk med dette elementet.

En klient MÅ sende inn et Depth-hode med verdien "0", "1" eller "uendelig" med en PROPFIND-forespørsel. Servere MÅ støtte "0"- og "1"-dybdeforespørsler på WebDAV-kompatible ressurser og BØR støtte "uendelig"-forespørsler. I praksis KAN støtte for forespørsler med uendelig dybde være deaktivert på grunn av ytelses- og sikkerhetsproblemer knyttet til denne atferden. Servere BØR behandle en forespørsel uten et Depth-hode som om et Depth: infinity-hode var inkludert.

En klient kan sende inn et propfind XML-element i brødteksten til forespørselsmetoden som beskriver hvilken informasjon som blir forespurt. Det er mulig å gjøre dette:

  • Begjære bestemte egenskapsverdier ved å navngi de ønskede egenskapene i prop-elementet (rekkefølgen på egenskapene her KAN ignoreres av serveren),
  • Begjære egenskapsverdier for de egenskapene som er definert i denne spesifikasjonen (som et minimum), pluss døde egenskaper, ved å bruke elementet allprop (elementet include kan brukes sammen med allprop for å instruere serveren om også å inkludere flere levende egenskaper som ellers ikke ville blitt returnert),
  • Begjære en liste med navn på alle egenskapene som er definert på ressursen, ved å bruke elementet propname.

En klient kan velge å ikke sende inn en forespørselsdel. En tom PROPFIND-forespørsel MÅ behandles som om den var en allprop-forespørsel.

Bemerk at allprop ikke returnerer verdier for alle live-egenskaper. WebDAV-servere har i økende grad dyrt beregnede eller lange egenskaper (se [RFC3253] og [RFC3744]) og returnerer ikke alle egenskaper allerede. I stedet kan WebDAV-klienter bruke propname-forespørsler for å finne ut hvilke live-egenskaper som finnes, og be om navngitte egenskaper når de henter verdier. For en live-egenskap som er definert et annet sted, kan definisjonen spesifisere om denne live-egenskapen skal returneres i allprop-forespørsler eller ikke.

Alle servere MÅ støtte retur av et svar av innholdstypen text/xml eller application/xml som inneholder et multistatus XML-element som beskriver resultatene av forsøkene på å hente de ulike egenskapene.

Hvis det oppstår en feil ved henting av en egenskap, MÅ et korrekt feilresultat inkluderes i svaret. En forespørsel om å hente verdien av en egenskap som ikke finnes, er en feil og MÅ noteres med et response XML-element som inneholder en 404 (Not Found)-statusverdi.

Følgelig MÅ multistatus XML-elementet for en samlingsressurs inneholde et response XML-element for hver medlems-URL i samlingen, til den dybden det ble bedt om. Det BØR IKKE inneholde noen response-elementer for ressurser som ikke er WebDAV-kompatible. Hvert response-element MÅ inneholde et href-element som inneholder URL-adressen til ressursen som egenskapene i prop XML-elementet er definert på. Resultater for en PROPFIND på en samlingsressurs returneres som en flat liste der rekkefølgen på oppføringene ikke er av betydning. Merk at en ressurs bare kan ha én verdi for en egenskap med et gitt navn, slik at egenskapen bare vises én gang i PROPFIND-svar.

Egenskaper kan være underlagt tilgangskontroll. Hvis en prinsipal ikke har rett til å vite om en bestemt egenskap finnes, KAN egenskapen ekskluderes fra svaret ved forespørsler om allprop og propname.

Noen PROPFIND-resultater KAN bufres, med forsiktighet, ettersom det ikke finnes noen mekanisme for validering av bufring for de fleste egenskaper. Denne metoden er både sikker og idempotent (se avsnitt 9.1 i [RFC2616]).

HTTP-metode PROPFIND er spesifisert i avsnitt 9.1 i dokument RFC 4918 av Internet Engineering Task Force (IETF) og World Wide Web Consortium (W3C).

Beskrivelse av PROPFIND-metoden

pågående arbeid

Eksempel for HTTP-metoden PROPFIND

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