Sobes.tech
Middle

HTTP sorğusunda GET/POST sorğularından əvvəl niyə OPTIONS metodu göndərilir?

sobes.tech Süni İntellekt

AI-dan cavab

OPTIONS metodu, veb-resurs və ya server üçün mövcud metodları və digər parametrli seçimləri müəyyən etmək üçün istifadə olunur, xüsusi hərəkət və ya resursun özünə daxil olmadan. Bu, CORS (Cross-Origin Resource Sharing) mexanikasının bir hissəsidir.

Bir veb səhifə başqa bir domenə (kross-mənbə sorğusu) resursuna sorğu göndərməyə çalışdıqda, brauzer OPTIONS metodu ilə əvvəlcədən sorğu (preflight) göndərə bilər. Bu sorğu Access-Control-Request-MethodAccess-Control-Request-Headers kimi başlıqları ehtiva edir və bu başlıqlar, faktiki sorğuda istifadə olunacaq HTTP metodu və başlıqları göstərir.

Qəbul edən server, Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-HeadersAccess-Control-Max-Age kimi başlıqlarla cavab verə bilər, brauzerə faktiki sorğunun icazə verilib-verilmədiyini və hansı metodlar/bəyanatlar qəbul olunduğunu bildirmək üçün.

Əgər server sorğunu icazə verirsə, brauzer faktiki sorğunu (GET, POST və s.) göndərməyə davam edir. Əks halda, sorğu brauzer tərəfindən bloklanır və faktiki sorğu göndərilmir, beləliklə server qeyri-icazəli kross-mənbə sorğularından qorunur.

OPTIONS sorğusu, hər GET/POST sorğusundan əvvəl deyil, yalnız "non-simple" (sadə olmayan) hesab olunan müəyyən kross-mənbə sorğuları üçün göndərilir. Sadə sorğular (məsələn, müəyyən məzmun tipləri ilə GET və ya POST və xüsusi başlıqlar olmadan) əvvəlcədən OPTIONS sorğusu olmadan göndərilir.

# OPTIONS sorğusunun başlıqları nümunəsi
# Access-Control-Request-Method: POST
# Access-Control-Request-Headers: Content-Type, Authorization
# Origin: http://client-domain.com

# OPTIONS-ə serverin cavab başlıqları nümunəsi
# Access-Control-Allow-Origin: http://client-domain.com
# Access-Control-Allow-Methods: POST, GET, OPTIONS
# Access-Control-Allow-Headers: Content-Type, Authorization
# Access-Control-Max-Age: 86400 # 24 saat üçün preflight nəticəsini yadda saxla

Ümumiyyətlə, bu, kross-mənbə sorğularında resurslara girişin idarə olunması üçün təhlükəsizlik mexanizmidir və serverə əsas sorğu göndərilmədən əvvəl brauzerin icra edəcəyi icazə verilən hərəkətləri müəyyən etməyə imkan verir.