الملخص
- بحثت مسودة W3C في فبراير 2007 كيف يسمح ناشر مورد بقراءة ردوده من مواقع أخرى. وبحلول مسودة CORS في مارس 2009، أخذ الحوار بين أصل الصفحة وإذن المورد وفحص المتصفح شكلًا أوضح.
- وصفت توصية يناير 2014 فحص
Access-Control-Allow-Origin. وتحتاج بعض الطرق أو الترويسات إلى طلب OPTIONS تمهيدي، بينما قد يصل طلب بسيط إلى الخادم من دون أن تتمكن شيفرة الصفحة من قراءة الرد.
يفتح القارئ صفحة طقس، فتظهر الخريطة ولا تظهر الأرقام. على شاشة المطوّر، الطلب خرج، والخادم رد، وكل شيء يبدو حيًا إلا الرسم الذي جاء القارئ من أجله. السبب أن وصول الرد إلى المتصفح لا يسمح تلقائيًا لبرنامج الصفحة بقراءته حين يأتي من أصل آخر. قبل هذا النوع من الإذن، كان على من يريد جمع بيانات مواقع متعددة أن يبحث عن مسار آخر بين الخوادم، بدل أن يربطها مباشرة في صفحة القارئ. جعل CORS قرار المشاركة في يد صاحب المورد: يكتب اسم من يدعوه، ويتحقق المتصفح من الدعوة، فتصل الأرقام إلى الرسم حين يسمح أصحابها بذلك.
في مسودة W3C بتاريخ 15 فبراير 2007 بعنوان Enabling Read Access for Web Resources، ظهر اقتراح بأن يخفف ناشر المورد قيد القراءة بواسطة ترويسة HTTP أو تعليمة XML. كانت صيغ تحديد المضيفين لا تزال قيد التجربة؛ فهذا أصل للفكرة، لا نص CORS النهائي. المهم أن الإذن يصدر من الجهة التي تقدم المورد. ثم جعلت مسودة CORS بتاريخ 17 مارس 2009 المحادثة أكثر تحديدًا: يعلن الطلب أصل الصفحة، ويعلن الرد ما تسمح به الجهة المستضيفة، ويقارن المتصفح الطرفين.
في توصية W3C الصادرة في 16 يناير 2014، يستطيع المورد أن يضع Access-Control-Allow-Origin في الرد مع اسم الأصل الذي يأذن له بالقراءة. يتحقق المتصفح من مطابقته لأصل الصفحة الطالبة قبل تسليم المحتوى إلى برنامجها. ويصلح الرمز * لمورد متاح على نطاق واسع حين لا تُرسل بيانات اعتماد. أما الطلب المصحوب ببيانات اعتماد فيحتاج إلى أصل محدد مطابق وإلى Access-Control-Allow-Credentials: true. الدعوة المفتوحة والبطاقة التي تحمل اسم ضيف بعينه قراران مختلفان.
أحيانًا يقرع المتصفح الباب قبل الزيارة الأصلية. إذا أرادت الشيفرة طريقة أو ترويسات خارج المجموعة البسيطة، ترسل طلب OPTIONS تمهيديًا لتسأل الخادم عن الطرق والترويسات التي يقبلها لذلك الأصل. يفحص المتصفح الجواب، وقد يحتفظ به مدة محددة قبل متابعة الطلب الفعلي. هذا الفحص له شروطه؛ ليس خطوة لازمة لكل اتصال بين موقعين. بالنسبة إلى من يبني خدمة تعتمد على بيانات من أكثر من جهة، يعني ذلك فرقًا عمليًا بين وصلات تعمل فورًا ووصلات تنتظر إذنًا لا ترسله الجهة الأخرى.
الفرق الحاسم هو بين وصول الطلب وإتاحة الرد للقراءة. قد يصل طلب بسيط إلى الخادم ويُعالج هناك، ثم يرفض المتصفح كشف الرد لشيفرة الصفحة. هنا يتبدل عمل المطوّر: بدل إصلاح مسار الشبكة الذي أوصل الطلب أصلًا، عليه أن يراجع الإذن الذي حمله الرد. وتفصل مناقشة الأمان في توصية 2014 صراحة بين السماح بالطلب وآثاره وبين السماح بقراءة التمثيل العائد. على الخادم أن يقرر بنفسه من يحق له تعديل حساب أو تنفيذ تحويل. ترويسة CORS تنظم تسليم الرسالة إلى القارئ؛ لا تمنح موظف البريد سلطة إدارة الخزنة.
يعرض سجل W3C لنشر CORS مسودات 2007، ثم إعلان توصية 2014، ثم سحب ذلك النص رسميًا في 2020. كان قلب الحل التاريخي محددًا: يقول صاحب المورد أي أصول يمكنها قراءة رده، ويطبق المتصفح القرار، وتستفيد الصفحة من البيانات إن حملت دعوة صحيحة. لهذا يهم الأمر من ينتظر رسمًا أو خريطة أو جدولًا يعتمد على بيانات جهة أخرى؛ فالاختيار المكتوب في استجابة بعيدة يقرر ما إذا كانت الشاشة ستخبره بشيء مفيد أم ستظل إطارًا فارغًا. يحصل رسم الطقس على أرقامه، ويبقى مفتاح البيت مع صاحبه.
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات





