CORS nədir?
sobes.tech Süni İntellekt
AI-dan cavab
CORS (Cross-Origin Resource Sharing) — bu mexanizmdir ki, veb-səhifələrə başqa domen, port və ya protokol üzrə resurslara sorğu göndərməyə imkan verir. Bu, əlavə HTTP başlıqları vasitəsilə həyata keçirilir.
Əsasən, brauzerlər Same-Origin Policy (SOP) siyasətini tətbiq edir, bu da eyni səhifədə işləyən skriptlərin başqa mənbədən (domen, port, protokol) olan məlumatlara girişini qadağan edir. CORS bu siyasəti nəzarət altında yumşaldır və serverə açıq şəkildə çapraz domen sorğularına icazə vermək imkanı yaradır.
CORS necə işləyir:
- Sadə sorğu: Əgər sorğu müəyyən meyarlara cavab verirsə (məsələn, GET və ya POST metodlarından istifadə olunursa, yalnız müəyyən başlıqlar icazə verilirsə), brauzer sorğunu birbaşa
Originbaşlığı ilə göndərir, bu başlıq sorğunun mənbəyini göstərir. Server, bu başlığı aldıqda,Access-Control-Allow-Originbaşlığı ilə icazə verilmiş mənbəni cavablandırır. - Preflight:
PUT,DELETEkimi metodlar və ya xüsusi başlıqlarla sorğular üçün, brauzer əvvəlcəOPTIONSsorğusu göndərir. Bu, serverə əsas sorğunun icazə verilib-verilmədiyini soruşur. Server, icazə verilmiş metodlar, başlıqlar və mənbələr haqqında məlumat verən başlıqlarla cavab verir. Əgər preflight uğurlu olarsa, brauzer əsas sorğunu göndərir.
CORS-un əsas başlıqları:
Origin: Brauzer tərəfindən sorğuda göndərilir, sorğu edən səhifənin mənbəyini (domen, port, protokol) göstərir.Access-Control-Allow-Origin: Server tərəfindən cavabda göndərilir, cavabın alınmasına icazə verilən mənbəni göstərir. Bu, xüsusi domen,*(hər hansı mənbə) və yaOriginbaşlığına əsasən dinamik şəkildə tənzimlənə bilər.Access-Control-Allow-Methods: Preflight cavabında server tərəfindən göndərilir, icazə verilmiş HTTP metodlarını göstərir (GET, POST, PUT, DELETE və s.).Access-Control-Allow-Headers: Preflight cavabında server tərəfindən göndərilir, icazə verilmiş başlıqları göstərir.Access-Control-Allow-Credentials: Server tərəfindən cavabda göndərilir, cookie və digər identifikasiya məlumatlarının qəbul olunub-olunmadığını göstərir.
Məsələn, https://example.com-dan sorğuları qəbul edən serverin cavar başlıqları nümunəsi:
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type, Authorization
CORS, API ilə qarşılıqlı əlaqə, şriftlərin yüklənməsi, CDN ilə Web Fonts istifadəsi kimi domenlərarası AJAX sorğularını istifadə edən çoxsaylı veb tətbiqlərinin düzgün işləməsi üçün vacibdir. Serverdə düzgün CORS konfiqurasiyası təhlükəsizlik və funksionallıq üçün çox önəmlidir.