HTTP so'rovida GET/POST so'rovlaridan oldin nima uchun OPTIONS usuli yuboriladi?
sobes.tech AI
AIdan javob
OPTIONS usuli usul web-resurs yoki server uchun mavjud usullar va boshqa parametrlangan opsiyalarni aniqlash uchun ishlatiladi, hech qanday maxsus harakat yoki resursga kirishni talab qilmaydi. Bu CORS (Cross-Origin Resource Sharing) mexanizmining bir qismidir.
Veb-sahifa boshqa domen (kross-origin so'rov)dagi resursga so'rov yubormoqchi bo'lsa, brauzer OPTIONS usuli bilan oldindan so'rov (preflight) yuborishi mumkin. Bu so'rov Access-Control-Request-Method va Access-Control-Request-Headers kabi sarlavhalarni o'z ichiga oladi va bu sarlavhalar haqiqiy so'rovda ishlatiladigan HTTP usuli va sarlavhalarni ko'rsatadi.
Qabul qilgan server, Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers va Access-Control-Max-Age kabi sarlavhalar bilan javob berishi mumkin, bu brauzerga haqiqiy so'rov ruxsat etilgan yoki yo'qligini va qaysi usullar/sarlavhalar qabul qilinishini bildirish uchun.
Agar server so'rovni ruxsat etsa, brauzer haqiqiy so'rovni (GET, POST va boshqalar) yuborishni davom ettiradi. Agar ruxsat etilmasa, so'rov brauzer tomonidan bloklanadi va haqiqiy so'rov yuborilmaydi, shunday qilib serverni ruxsatsiz kross-origin so'rovlaridan himoya qiladi.
OPTIONS so'rovi, har GET/POST so'rovidan oldin emas, balki faqat "no-simple" (no-soddaroq) deb hisoblangan kross-origin so'rovlar uchun yuboriladi. Oddiy so'rovlar (masalan, ma'lum kontent turlari bilan GET yoki POST va maxsus sarlavhalarsiz) oldindan OPTIONS so'rovisiz yuboriladi.
# OPTIONS so'rovi sarlavhalari misoli
# Access-Control-Request-Method: POST
# Access-Control-Request-Headers: Content-Type, Authorization
# Origin: http://client-domain.com
# OPTIONSga server javobi sarlavhalari misoli
# 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 soat davomida preflight natijasini kechirish
Umuman olganda, bu kross-origin so'rovlar davomida resurslarga kirishni nazorat qilish uchun xavfsizlik mexanizmi bo'lib, serverga asosiy so'rov yuborilishidan oldin brauzer ruxsat etilgan harakatlarni amalga oshiradimi yoki yo'qligini aniqlash imkonini beradi.