معرفی
CORS مخفف عبارت Cross-Origin Resource Sharing (CORS) است. CORS خود یک ویژگی HTTP است که منابع یا برنامه های کاربردی وب را که می توانند به دامنه ها دسترسی داشته باشند را محدود می کند. منابع می تواند هر چیزی از یک صفحه وب باشد، می تواند یک تصویر، فیلم، CSS یا اسکریپت باشد. هر چیزی که به طور بالقوه می تواند توسط مرورگر درخواست شود منبع است.
مبدا متقاطع در CORS به چه چیزی اشاره دارد؟
مبدا اولین قسمت URL است:
یک مرورگر درخواستی را ارسال می کند که از یک منبع به مبدأ دیگر منشا می گیرد، و آنها قوانینی را برای اجازه یا عدم اجازه درخواست ارزیابی می کنند. همه درخواستهای متقاطع توسط مرورگر مسدود نمیشوند. به این نوع درخواست ها یک درخواست ساده گفته می شود. برخی از نمونه ها عبارتند از:
درخواست های "ساده" معمولی عبارتند از:
-
جاسازی یک تصویر
-
جاسازی یک اسکریپت
-
پیوند دادن به CSS
-
فرم ارسال اطلاعات
اگر برنامه وب را به طور منظم کار می کنید، احتمالاً با محدودیت های زیادی در تعبیه جاوا اسکریپت از CDN و پیوند دادن تصاویر در دامنه های متقابل مواجه شده اید. مرورگر درخواستی را بررسی میکند که مشخص شده محدود شده است، اینجا جایی است که CROSS وارد بازی میشود. هنگامی که مرورگر تعیین کرد که درخواست محدود می شود، از CORS برای اجازه یا عدم پذیرش درخواست استفاده می کند. مرورگر چگونه این تصمیم را می گیرد؟ به عنوان مثال:
![مفاهیم CORS ذخیره سازی Azure](http://pezhvak24.ir/dl/codenevis/firstcode/article/azure-storage-cors-concepts-introduction-part-1/Images/CROSS-Origin%20Request.png)
وب سایت hubfly.com یک تصویر از visithubfly.com برای درخواست ارسال می کند. این درخواست برای جاسازی یک تصویر حتی اگر درخواست های متقاطع را داشته باشد، مرورگر به طور پیش فرض cross را فعال نمی کند زیرا جاسازی یک تصویر یک درخواست ساده است. بنابراین تصویر با این جاسازی خواهد شد.
در مرورگر، من این صفحه نمایش آزمایشی را برای درخواست تصویر از حساب ذخیره سازی دمو آزور به عنوان فعال CORS دارم. این مثال برای visithubfly.com را نشان می دهد
اکنون ابزار توسعه دهنده را باز کنید و اجازه دهید کنسول بسته شود و تصویر را بررسی کنید. در اینجا می توانید ببینید که به سادگی تعبیه شده است.
![مفاهیم CORS ذخیره سازی Azure](http://pezhvak24.ir/dl/codenevis/firstcode/article/azure-storage-cors-concepts-introduction-part-1/Images/Image%20embeded.png)
اگر به ترافیک شبکه نگاه کنید و صفحه را مجدداً بارگیری کنید، می بینیم که یک درخواست منفرد خارج می شود. ببینید که در تصویر زیر هیچ عنوان CORS تنظیم نشده است، اما درخواست با موفقیت انجام می شود.
![مفاهیم CORS ذخیره سازی Azure](http://pezhvak24.ir/dl/codenevis/firstcode/article/azure-storage-cors-concepts-introduction-part-1/Images/request%20headers.png)
سرور visithubfly.com محدودیت CORS را فعال کرده و درخواست را مجاز نمیداند و در کمال تعجب پاسخ منفی است. از آنجایی که مرورگر به سادگی درخواست کرده است، هدر مبدا را که برای همه درخواستهای CORS لازم است ارسال نمیکند. سرور می تواند قانون CORS را در سربرگ پاسخ "Access-Control-Allow-Origin" برگرداند: visithubfly.com
![مفاهیم CORS ذخیره سازی Azure](http://pezhvak24.ir/dl/codenevis/firstcode/article/azure-storage-cors-concepts-introduction-part-1/Images/CROSS-Origin%20Request-%20with%20Origin.png)