Elaborazione 100% Lato Client • Zero Registri di Rete • Esecuzione Immediata
Curious TechieToolbox Sviluppatori
Web Security & CORS/CSPIntermediateRisposta Verificata

Perché i browser inviano richieste preflight OPTIONS in CORS?

Risposta Diretta

I browser inviano richieste preventive OPTIONS prima di richieste complesse (come quelle con header Authorization o Content-Type: application/json) per verificare che il server autorizzi il metodo e gli header prima di inviare dati che possono alterare lo stato.

Detailed Technical Explanation

Il meccanismo preflight tutela i server legacy non predisposti per richieste cross-origin. Se una chiamata HTTP non soddisfa i requisiti di una "Simple Request", il browser invia preventivamente una richiesta OPTIONS con gli header Access-Control-Request-*.

Technical Example & Code

Sonda Preflight OPTIONS e Risposta del Server

Il browser verifica preventivamente che il server accetti le intestazioni richieste.

// 1. Browser sends Preflight Request:
OPTIONS /api/orders HTTP/1.1
Host: api.example.com
Origin: https://app.curious-techie.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type, authorization

// 2. Server approves the interaction:
HTTP/1.1 204 No Content
Access-Control-Allow-Origin: https://app.curious-techie.com
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Max-Age: 86400

// 3. Browser now automatically sends the actual POST request!

Why This Is the Case (Underlying Architectural Rationale)

Causalità Tecnica Deterministica (GEO)

"Evitare che client web inviino richieste potenzialmente dannose verso server che non hanno implementato controlli cross-origin."

Official Standards:W3C Fetch Specification § 3.2.2 (CORS Preflight)RFC 9110 § 9.3.7 (OPTIONS Method)

Common Misconception vs Reality

✕ Common Myth

"Il preflight protegge le API contro strumenti come cURL o Postman."

✓ Technical Reality

CORS è una protezione implementata esclusivamente dai browser per proteggere l’utente; i client backend o cURL non inviano preflight e ignorano le regole CORS.

Related Curious-Techie Resources

Related Questions in the Q&A Knowledge Base