CORS nima?
sobes.tech AI
AIdan javob
CORS (Cross-Origin Resource Sharing) — bu mexanizm bo‘lib, veb-sahifalarga boshqa domen, port yoki protokoldan resurslarni so‘rash imkonini beradi. Bu qo‘shimcha HTTP sarlavhalari yordamida amalga oshiriladi.
Standart ravishda, brauzerlar Same-Origin Policy (SOP) siyosatini qo‘llaydi, bu esa bir sahifadagi skriptlarning boshqa manbadan (domen, port, protokol) ma'lumotlarga kirishini taqiqlaydi. CORS bu siyosatni nazorat qilinadigan tarzda yumshatadi, serverga aniq ruxsat berish imkonini beradi.
CORS qanday ishlaydi:
- Oddiy so‘rov: Agar so‘rov ma'lum shartlarga javob bersa (masalan, GET yoki POST metodlaridan foydalanilsa, faqat ma'lum sarlavhalar ruxsat etilgan bo‘lsa), brauzer
Originsarlavhasi bilan to‘g‘ridan-to‘g‘ri so‘rov yuboradi. Server, bu sarlavhani olgach,Access-Control-Allow-Originsarlavhasi bilan ruxsat etilgan manbani javob qiladi. - Preflight:
PUT,DELETEkabi metodlar yoki maxsus sarlavhalar bilan so‘rovlar uchun, brauzer avvalOPTIONSso‘rovini yuboradi. Bu so‘rov serverga asosiy so‘rov ruxsat etilganmi yoki yo‘qligini so‘raydi. Server, ruxsat etilgan metodlar, sarlavhalar va manbalarni ko‘rsatadigan sarlavhalar bilan javob beradi. Agar preflight muvaffaqiyatli bo‘lsa, brauzer haqiqiy so‘rovni yuboradi.
CORS ning asosiy sarlavhalari:
Origin: Brauzer tomonidan so‘rovda yuboriladi, so‘rov yuborayotgan sahifaning manbaini (domen, port, protokol) ko‘rsatadi.Access-Control-Allow-Origin: Server tomonidan javobda yuboriladi, javobni qabul qilish mumkin bo‘lgan manbaini ko‘rsatadi. Bu aniq domen,*(har qanday manba) yokiOriginsarlavhasiga asoslangan dinamik tarzda bo‘lishi mumkin.Access-Control-Allow-Methods: Preflight javobida server tomonidan yuboriladi, ruxsat etilgan HTTP metodlarini ko‘rsatadi (GET, POST, PUT, DELETE va boshqalar).Access-Control-Allow-Headers: Preflight javobida server tomonidan yuboriladi, ruxsat etilgan so‘rov sarlavhalarini ko‘rsatadi.Access-Control-Allow-Credentials: Javobda server tomonidan yuboriladi, cookie va boshqa identifikatsiya ma'lumotlarini qabul qilish ruxsat etilganmi yoki yo‘qligini ko‘rsatadi.
Misol uchun, https://example.com dan so‘rovlarni ruxsat etadigan server javob sarlavhalari:
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type, Authorization
CORS ko‘plab veb-ilovalar, masalan, API bilan o‘zaro ta'sir, shriflarni yuklash, CDN bilan Web Fonts ishlatish kabi, domenlararo AJAX so‘rovlar uchun muhimdir. To‘g‘ri CORS sozlamalari xavfsizlik va funksionallik uchun juda muhimdir.