Ի՞նչ է CORS-ը։
sobes.tech AI
Պատասխան AI-ից
CORS (Cross-Origin Resource Sharing) — դա մեխանիզմ է, որը թույլ է տալիս վեբ էջերին խնդրել ռեսուրսներ այլ դոմենից, պորտից կամ պրոտոկոլից, որը տարբերվում է այն բանից, որտեղից բեռնվել է ինքն էջը: Դա կատարվում է լրացուցիչ HTTP գլխիկներով:
Նախնական, բրաուզերները կիրառում են Same-Origin Policy (SOP) քաղաքականությունը, որը արգելում է նույն էջում աշխատող սքրիպտներին մուտք ունենալ տվյալներ այլ աղբյուրներից (դոմեն, պորտ, պրոտոկոլ): CORS-ը մեղմում է այս քաղաքականությունը վերահսկվող կերպով՝ թույլ տալով սերվերին հստակ թույլ տալ cross-domain հարցումները:
Ինչպես է աշխատում 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 մեթոդները: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 կարգավորումը կարևոր է անվտանգության և գործառնականության համար։