Preflight-Anfrage

Eine CORS-Preflight-Anfrage ist eine CORS-Anfrage, die überprüft, ob das CORS-Protokoll verstanden wird und ein Server mit bestimmten Methoden und Headern vertraut ist.

Es handelt sich um eine OPTIONS-Anfrage, die zwei oder drei HTTP-Anfrage-Header verwendet: Access-Control-Request-Method, Origin und optional Access-Control-Request-Headers.

Eine Preflight-Anfrage wird automatisch von einem Browser erstellt und in normalen Fällen müssen Front-End-Entwickler solche Anfragen nicht selbst erzeugen. Sie erscheint, wenn die Anfrage als "vorab zu prüfen" klassifiziert wird und wird für einfache Anfragen weggelassen.

Zum Beispiel könnte ein Client einen Server fragen, ob er eine DELETE-Anfrage zulässt, bevor er eine DELETE-Anfrage sendet, indem er eine Preflight-Anfrage verwendet:

http
OPTIONS /resource/foo
Access-Control-Request-Method: DELETE
Access-Control-Request-Headers: x-requested-with
Origin: https://foo.bar.org

Wenn der Server dies erlaubt, antwortet er auf die Preflight-Anfrage mit einem Access-Control-Allow-Methods-Antwortheader, der DELETE auflistet:

http
HTTP/1.1 204 No Content
Connection: keep-alive
Access-Control-Allow-Origin: https://foo.bar.org
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Allow-Headers: X-Requested-With
Access-Control-Max-Age: 86400

Die Preflight-Antwort kann optional für Anfragen, die an derselben URL erstellt wurden, zwischengespeichert werden, indem der Header Access-Control-Max-Age wie im obigen Beispiel verwendet wird. Um Preflight-Antworten zu cachen, verwendet der Browser einen spezifischen Cache, der getrennt vom allgemeinen HTTP-Cache ist, den der Browser verwaltet. Preflight-Antworten werden niemals im allgemeinen HTTP-Cache des Browsers zwischengespeichert.

Siehe auch