Grundlagen der Webtechnologien

JavaScript auf einer Seite unter https://app.example.com will mit fetch eine POST-Anfrage mit einem Body vom Content-Type application/json an https://api.example.net/orders senden. Welche Aussage über das Verhalten von CORS in diesem Fall ist richtig?

  1. ACORS wirkt auch außerhalb von Browsern; ohne Erlaubnis des Servers wird daher auch ein mit einem Kommandozeilenwerkzeug gesendeter POST unterwegs im Netz gestoppt
  2. BDer Browser sendet zuerst mit der Methode OPTIONS eine Vorabprüfung (Preflight) und sendet den eigentlichen POST nur, wenn der Server in seinen Headern die Erlaubnis zurückgibt
  3. CAnfragen an einen anderen Ursprung werden immer ohne Prüfung gesendet, und das JavaScript der Seite kann die Antwort lesen, auch wenn der Server ihr nichts hinzufügt
Antwort und Erläuterung anzeigen

Antwort: B. Der Browser sendet zuerst mit der Methode OPTIONS eine Vorabprüfung (Preflight) und sendet den eigentlichen POST nur, wenn der Server in seinen Headern die Erlaubnis zurückgibt

CORS ist ein Mechanismus, der Anfragen an andere Ursprünge und das Lesen ihrer Antworten, die die Same-Origin-Policy einschränkt, in dem vom Server erlaubten Umfang zulässt. Ein POST mit dem Content-Type application/json ist eine Art von Anfrage, die ein einfaches Formular nicht erzeugen kann; deshalb teilt der Browser zuerst mit OPTIONS die Methode und die Header mit, die er verwenden will, und fragt nach der Erlaubnis. Enthält die Antwort des Servers keine Erlaubnis über Header wie Access-Control-Allow-Origin, sendet der Browser die eigentliche Anfrage nicht. CORS ist eine Regel, die der Browser einhält; der Server muss sich daher zusätzlich mit Authentifizierung und Berechtigungsprüfungen selbst schützen.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen der Webtechnologien

  1. Welche Aussage über einen Service Worker ist richtig?
  2. Was ist der Hauptzweck, auf einer Seite mit Responsive Design, die auch Smartphones unterstützt, <meta name="viewport" content="width=device-width, initial-scale=1"> in <head> zu schreiben?
  3. Die Antwort für eine „Meine Seite“, deren Inhalt für jeden Nutzer anders ist, erhält Cache-Control: private, max-age=60. Welche Aussage über die Wirkung dieser Angabe ist richtig?
  4. Ein Webserver komprimiert Antworten vor dem Senden mit gzip oder Brotli. Bei welchem Inhalt verringert die Komprimierung die übertragene Datenmenge im Allgemeinen am wenigsten?
  5. 1,5 MB Textdaten werden mit gzip auf ein Drittel der Größe komprimiert und gesendet. Die Bandbreite beträgt 10 Mbit/s und die RTT 100 ms; bevor das Senden der Daten beginnt, brauchen TCP-Verbindungsaufbau, TLS-Handshake und HTTP-Anfrage zusammen drei Umläufe. Es gilt 1 MB = 10^6 Byte; die Zeit für Komprimierung und Dekomprimierung, Header sowie Wartezeiten durch die Überlastkontrolle von TCP werden vernachlässigt. Welcher Wert liegt der Zeit bis zum vollständigen Empfang der Daten am nächsten?