CORS деген эмне?
sobes.tech AI
AIден жооп
CORS (Cross-Origin Resource Sharing) — бул механизм, ал веб-баракчаларга башка домен, порт же протоколдон ресурстарды сурап алууга мүмкүндүк берет, ал ошол баракчаны жүктөгөндөн башка. Бул HTTP кошумча башталыштары аркылуу ишке ашырылат.
Дефолт боюнча, браузерлер Same-Origin Policy (SOP) саясатын колдонушат, ал бир баракчада иштеген скрипттерге башка булактан (домен, порт, протокол) маалыматка жетүүгө тыюу салат. CORS бул саясатты көзөмөлдөнүүчү жол менен жумшартат, серверге кросс-домен суроолорду так уруксат берүүгө мүмкүнчүлүк берет.
CORS кантип иштейт:
- Жөнөкөй суроо: Эгер суроо белгилүү критерийлерге жооп берсе (мисалы, GET же POST ыкмасын колдонуу, гана белгилүү башталыштар уруксат берилген), браузер
Originбашталышы менен түздөн-түз суроо жиберет, ал суроо булагын көрсөтөт. Сервер, бул башталышты алган соң,Access-Control-Allow-Originбашталышы менен жооп кайтарат, ал уруксат берилген булакты көрсөтөт. - Preflight суроо: "Жөнөкөй эмес" суроолор үчүн (мисалы,
PUT,DELETEыкмаларын колдонуу же колдонуучу башталыштарды колдонуу), браузер алдын алаOPTIONS-суроо жиберет. Бул суроо серверден ал суроо үчүн уруксат бар-жогун сурайт. Сервер жооп кайтарат, ал уруксат берилген ыкмалар, башталыштар жана булактарды көрсөтөт. Эгер preflight ийгиликтүү өтсө, браузер өзү суроону жиберет.
CORS негизги башталыштары:
Origin: Браузерден суроо менен жиберилет, ал суроонун булагын көрсөтөт (домен, порт, протокол).Access-Control-Allow-Origin: Серверден жооп менен жиберилет, ал кайсы булакка жооп алуу уруксат берилгенин көрсөтөт. Конкреттүү домен,*(бардык булактар), же сервер тарабынан динамик түрдө түзүлүшү мүмкүн,Originбашталышынын негизинде.Access-Control-Allow-Methods: Серверден preflight жооп менен жиберилет, уруксат берилген HTTP ыкмаларын көрсөтөт (GET, POST, PUT, DELETE жана башка).Access-Control-Allow-Headers: Серверден preflight жооп менен жиберилет, уруксат берилген суроо башталыштарын көрсөтөт.Access-Control-Allow-Credentials: Серверден жооп менен жиберилет, кукилер жана башка идентификациялык маалыматтарды кабыл алуу уруксат берилгенин көрсөтөт.
Мисал катары, https://example.com суроолоруна уруксат берген сервер жооп башталыштары:
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type, Authorization
CORS көп веб-колдонмолордун туура иштеши үчүн зарыл, ал cross-origin AJAX суроолорду колдонуп жатканда, мисалы API өз ара аракеттенүү, шрифттерди жүктөө, CDN аркылуу веб-шрифттерди колдонуу жана башка. Серверде CORS туура орнотуу коопсуздук жана функционалдуулук үчүн өтө маанилүү.