Cross-origin resource sharing ist ein Mechanismus, der es einer Webseite ermöglicht, XMLHttpRequests zu einer anderen Domain zu machen (von Wikipedia).
Ich habe mich in den letzten Tagen mit CORS beschäftigt und ich denke, ich verstehe ziemlich gut, wie alles funktioniert.
Also meine Frage bezieht sich nicht darauf, wie CORS / Preflights funktionieren, sondern auf den Grund, warum Preflights als neuer Anforderungstyp eingeführt wurden. Ich sehe keinen Grund, warum Server A an Server B eine Preflight-Anfrage senden muss, nur um herauszufinden, ob die eigentliche Anfrage akzeptiert wird oder nicht - es wäre sicherlich möglich für B, RR ohne PR zu akzeptieren/abzulehnen.
Nachdem ich ziemlich viel gesucht habe, habe ich diesen Abschnitt an www.w3.org (7.1.5) gefunden:
Um Ressourcen vor Cross-Origin-Anfragen zu schützen, die von bestimmten Benutzeragenten stammen könnten, bevor diese Spezifikation existierte, wird eine Preflight-Anfrage gestellt, um sicherzustellen, dass die Ressource sich dieser Spezifikation bewusst ist.
Ich finde dies ist der schwerste Satz überhaupt zu verstehen. Meine Interpretation (sollte es besser 'bester Schuss' nennen) ist, dass es darum geht, Server B vor Anfragen von Server C zu schützen, die sich nicht der Spezifikation bewusst sind.
Kann mir jemand bitte ein Szenario erklären / ein Problem zeigen, das PR + RR besser löst als nur RR allein?