الطلب والاستجابة هما أكثر الكائنات المدمجة شيوعًا التي توفرها ASP. بين المتصفح (أو وكيل المستخدم الآخر) وخادم الويب ، يمكن الوصول إلى تبادل المعلومات الذي يحدث في الطلب والاستجابة وإدارتها من خلال كائنين مدمجين في ASP ، يسمى كائنات الطلب والاستجابة.
يتطلب كل العمل الذي يتعين تنفيذه في صفحة ASP الوصول إلى هذين الكائنين. بالطبع ، الغرض الرئيسي من ذلك هو الوصول إلى القيمة المرسلة إلى الخادم من قبل المستخدم ، أي الحصول على من فئة <Porm> من صفحة HTML أو إرفاقها بعنوان URL كسلسلة استعلام ، وإنشاء إخراج مناسب للعودة إلى المستخدم ، ويمكنهم مشاركة الكثير من العوامل. على سبيل المثال ، يمكن كلا الكائنين استخدام ملفات تعريف الارتباط المخزنة على الكمبيوتر العميل.
لذلك ، نقوم بتقسيم المحتوى إلى جزأين مستقلين (جزء من كل كائن) ، وبدء أولاً بتبادل المعلومات بين العميل والخادم ، ثم دراسة كل كائن.
محتوى البحث هو:
· كيف يتواصل العميل مع الخادم لتسليم الويب أو الموارد الأخرى.
· تفاصيل كائنات الطلب والاستجابة ، وما هي المشتركة.
كيفية الوصول إلى القيمة المقابلة من خلال نموذج وسلسلة الاستعلام.
· كيفية قراءة أو إنشاء ملفات تعريف الارتباط وتخزينها على كمبيوتر العميل.
· ما هي متغيرات الخادم؟ كيفية الوصول إلى رؤوس HTTP وتعديلها.
· وصف التغييرات على الإدخالات الأخرى ذات الصلة ، مثل استخدام شهادة العميل.
التواصل بين العملاء والخوادم
لتوفير المساحة ، يتم استخدام متصفح Word في المحتوى التالي. ولكن يجب أن نتذكر أن التطبيقات التي يمكنها الوصول إلى صفحات الويب ليست متصفحات فحسب ، ولكن العديد من التطبيقات الخاصة بتنزيل صفحات الويب من الموقع ، مثل برامج العميل الخاصة المصممة لأولئك المستخدمين الذين يعانون من عيوب الرؤية أو استخدام المتصفح المعتاد يواجه صعوبات أخرى على الناس. المثال الأكثر وضوحًا هو الروبوت الذي تستخدمه محركات البحث للوصول إلى المواقع على الويب. ضع في اعتبارك هذه العوامل بشكل شامل ، بما في ذلك متصفحات الويب العادية ، يجب أن تكون الكلمة الدقيقة وكيل مستخدم.
محادثة طلب الصفحة
عندما يقوم المتصفح بتقديم طلب صفحة إلى موقع ويب ، من الواضح أنه يتعين عليه إخبار الخادم بالصفحة التي يطلبها. أول ما يجب فعله هو إنشاء اتصال بالخادم من خلال اسم المجال ، ثم توفير المسار الكامل واسم الصفحة المطلوبة. لماذا تحتاج المسار والاسم الكامل؟ الويب هي بيئة بلا حدود ، لذلك من الضروري إنشاء جلسة لتحديد كل عميل (كيف يمكن لـ ASP القيام بذلك لاحقًا).
هذا يعني أنه في كل مرة يكمل فيها الخادم إرسال الصفحة إلى العميل ، ينسى الخادم العميل تمامًا. لذلك عندما يطلب العميل الصفحة التالية ، يكون ذلك تمامًا مثل زائر جديد. لا يمكن أن يتذكر الخادم هذا العميل ، وبناءً على ذلك ، لا يمكنه تحديد الصفحة التي طلبوها في المرة الأخيرة. لأنه لا يمكنك استخدام مسار نسبي لتوفير صفحة ، حتى لو كانت الصفحة تحتوي على رابط نسبي ، على سبيل المثال:
| < a href = download.asp> الصفحة التالية </a> |
سيقوم المتصفح تلقائيًا بإنشاء عنوان URL الكامل لصفحة جديدة باستخدام المجال ومسار الصفحة الحالية ؛ الصفحة هي. على سبيل المثال:
| < base herf = http: //www.wrox.com/store > |
عند توجيه الماوس إلى رابط إلى صفحة ، يمكن رؤيته في شريط حالة المتصفح. تم دمج المسار إلى الصفحة الحالية والمجال الحالي أو المجال الأساسي أو المسار الأساسي مع اسم الصفحة المطلوبة.
1. تفاصيل طلبات العملاء
إن مزيج المسار الكامل واسم الصفحة المطلوبة هو الإقامة الوحيدة للخادم عندما يطلب المتصفح الصفحة. سيتغير محتوى المعلومات الفعلي وفقًا لذلك مع المتصفح ، ويمكن توفير عدد صغير منه فقط بواسطة تطبيقات أخرى مثل Robot Engine Robot. للحصول على فهم أوضح لهذه المعلومات ، إليك صفحة من IE 5.0 http://www.wrox.com/store/
requary.asp request معلومات:
| 7/8/99 10:27:16 أرسل get /store/download.asp http/1.1 قبول: التطبيق/msword ، التطبيق/vnd.ms-execl ، التطبيق/vnd.ms- PowerPoint ، صورة/GIF ، Image/X-xbitmap ، Image/JPEG ، Image/PJPEG ، Application/X- المذنب ، */ * قبول اللغة: en-us الترميز: gzip ، انحراف المرجع: http://wwrox.com/main_menu.asp ملف تعريف الارتباط: VisitCount = 2 & LastDate = 6 ٪ 2F4 ٪ 2F99+10 ٪ 3A10 ٪ 3A13+AM عامل المستخدم: Mozilla/4.0 (متوافق ؛ MSIE 5.0 ؛ Windows 98) المضيف: 212.250.238.67 الاتصال: الحفاظ على الحفل |
يمكن ملاحظة ذلك أن المعلومات تحتوي على تفاصيل حول وكيل المستخدم واتصال المستخدم (مثل اللغة الافتراضية) ، بالإضافة إلى قائمة بأنواع الملفات أو التطبيقات المقبولة. . كثير. يمكن للمتصفح قبول العديد من ملفات الصور وأنواع ملفات Microsoft Office متعددة. لم يتم سرد أنواع الملفات القياسية مثل TESX/HTML والنص/النص فيها. */* في قائمة الملفات يعني أنه يمكن إرسال أي نوع من الملفات إلى المتصفح ، أو تفسيره المتصفح أو من خلال تطبيق إضافي.
ملف تعريف الارتباط: يتم تخزين ملف تعريف الارتباط الموجود في الإدخال على جهاز كمبيوتر العميل وهو صالح فقط لهذا المجال. إذا كان الطلب هو نتيجة النقر على الرابط ، بدلاً من إدخال عنوان URL مباشرة في شريط عنوان المتصفح ، يتم عرض الإدخال ، والذي يحتوي على عنوان URL الكامل لصفحة الارتباط.
المضيف: يحتوي الإدخال على عنوان IP أو اسم الكمبيوتر العميل. ومع ذلك ، هذا لا يكفي لتحديد العميل بدقة. لأنه عندما يتصلون عبر ISP ، يتم تخصيص عناوين IP ديناميكيًا ، أو عندما تتصل من خلال خادم وكيل ، تكون عناوين IP من الوكيل بدلاً من العميل الفعلي.
2. تفاصيل استجابة الخادم
من أجل الرد على الطلب أعلاه وتوفير الصفحة المطلوبة إلى متصفح مجهول (أي ، لا يتعين على المستخدم توفير اسم مستخدم وكلمة مرور الوصول) ، يتم إرسال المحتوى التالي من الخادم إلى العميل:
| 7/8/99 10:27:16 تلقى http/1.1 200 موافق الخادم: Microsoft-IIS/5.0 الاتصال: الحفاظ على الحفل التاريخ: الخميس ، 8 يوليو 1999 10:27:16 بتوقيت جرينتش نوع المحتوى: النص/html قبول النطاقات: بايت طول المحتوى: 2946 المعدل الأخير: الخميس ، 8 يوليو 1999 10:27:16 بتوقيت جرينتش ملف تعريف الارتباط: VisitCount = 3 & LastDate = 7 ٪ 2F8 ٪ 2F99+10 ٪ 3A27 ٪ 3A16+AM < HTML > & hellip </html > |
يمكن ملاحظة أن الخادم يشرح البرنامج والإصدار الذي يستخدمه للعميل. الرسالة 200 موافق يعني أن الطلب تم قبوله ورضاته. المعلومات التالية هي تفاصيل الصفحة التي يتم إرجاعها ، بما في ذلك نوع MIME (طول المحتوى :) ، الحجم (بايت) ، آخر وقت تغيير ، وملف تعريف الارتباط الذي تم تخزينه بواسطة العميل. المعلومات الأخرى في الاستجابة هي تدفق المعلومات لمحتوى الصفحة.
في بعض الحالات ، لا يمكن للخادم إرجاع صفحة بعد الاستجابة لطلب ما ، ربما لأن الصفحة غير موجودة ، أو أن العميل ليس لديه الأذونات المقابلة للوصول إليه. سنناقش قضايا الأمن لاحقًا. الآن ، بالنسبة للمواقف التي لا توجد فيها صفحة الطلب (على سبيل المثال ، أدخل المستخدم عنوان URL الخاطئ في شريط عنوان المتصفح) ، تبدأ المعلومات التي تم إرجاعها بـ:
| 7/8/99 14:27:16 تلقى http/1.1 404 غير موجود الخادم: Microsoft-IIS/5.0 ... |
هنا ، تشير رمز الحالة والمعلومات إلى أنه لا يمكن العثور على الصفحة التي يطلبها العميل. يمكن للمتصفح استخدام هذه المعلومات لعرض المعلومات المقابلة للمستخدم (في هذه الحالة ، لا يتم عرض معلومات استجابة الخادم في IE 5.0 ، ولكن صفحة مطالبة خطأ المساعدة المقابلة) أو الصفحة الافتراضية التي أنشأها الخادم (الاعتماد على خادم. كائنات الطلب والاستجابة
يتم تنفيذ تفاصيل القدرة على تطبيق طلبات العميل واستجابات الخادم من ASP من خلال كائنات الطلب المدمجة والاستجابة ASP.
· طلب كائن: يوفر البرامج النصية جميع المعلومات التي يقدمها العميل عندما يطلب العميل صفحة أو يمرر نموذجًا. يتضمن ذلك متغيرات HTTP التي يمكن أن تشير إلى المتصفح والمستخدم ، ملفات تعريف الارتباط المخزنة في المتصفح تحت اسم المجال هذا ، أي قيمة تحكم HTML مرفقة كسلسلة استعلام للسلسلة بعد عنوان URL أو قسم الصفحة <Porm>. الوصول المعتمد باستخدام طبقة المقبس الآمنة (SSL) أو غيرها من بروتوكولات الاتصال المشفرة ، وكذلك السمات التي تساعد على إدارة الاتصالات.
· كائن الاستجابة: يستخدم للوصول إلى معلومات الاستجابة التي أنشأها الخادم وإرسالها إلى العميل. يوفر متغيرات HTTP للنصوص التي تشير إلى وظائف الخادم والخادم والمعلومات حول المحتوى المرسلة إلى المتصفح ، وكذلك أي ملفات تعريف ارتباط جديدة سيتم تخزينها في المتصفح لهذا المجال. كما يوفر مجموعة من الطرق لإنشاء الإخراج ، مثل طريقة الاستجابة في كل مكان.
1. نظرة عامة على أعضاء كائن الطلب
أ) مجموعة من كائنات الطلب
يوفر كائن الطلب 5 مجموعات يمكن استخدامها للوصول إلى المعلومات المختلفة التي يطلبها العميل إلى خادم الويب.
جمع ووصف كائنات الطلب
| اسم المجموعة | يوضح |
| ClientCertificate | عندما يصل العميل إلى صفحة أو مورد آخر ، فإن المجموعة العددية لجميع الحقول أو إدخالات شهادة العميل المستخدمة للإشارة إلى الهوية للخادم ، كل عضو هو للقراءة فقط |
| ملفات تعريف الارتباط | وفقًا لطلب المستخدم ، فإن مجموعة من جميع ملفات تعريف الارتباط الصادرة عن نظام المستخدم. |
| استمارة | عندما تكون قيمة السمة للطريقة ، يتم قراءة كل عضو فقط لجميع مجموعات قيم وحدات التحكم HTML في القسم <Porm> المقدم كطلب. |
| Querystring | كل عضو هو للقراءة فقط لقيمة جميع وحدات التحكم HTML في <Porm> ، اعتمادًا على زوج الاسم/القيمة بعد عنوان URL المطلوب من قبل المستخدم أو المقدم كطلب ، يتم الحصول على سمة الطريقة (أو تم حذف سمة ذلك ) ، أو قيم جميع وحدات التحكم في HTML في <port> |
| ServerVariables | مجموعة من قيم رأس HTTP الصادرة عن طلب العميل وقيم العديد من متغيرات البيئة لخادم الويب ، كل عضو هو للقراءة فقط |
ب) خصائص كائن الطلب
يتم عرض الخصائص الفريدة والوصف لكائن الطلب في الجدول التالي. .
| ملكية | يوضح |
| totlbytes | للقراءة فقط ، إرجاع عدد بايت بايت للطلب الصادر عن العميل |
ج) طرق طلب الطلب
يتم عرض الطريقة الوحيدة ووصف كائن الطلب في الجدول التالي ، والذي يسمح بالوصول إلى المحتوى الكامل لجزء طلب المستخدم الذي تم تمريره إلى الخادم من شريحة <Porm>.
طريقة ووصف كائن الطلب
| طريقة | يوضح |
| BinaryRead (العد) | عند إرسال البيانات إلى الخادم كجزء من طلب النشر ، يتم الحصول على بايتات البيانات من طلب العميل ويتم إرجاع صفيف متغير (أو SafeArray). إذا كان رمز ASP يشير بالفعل إلى مجموعة request.form ، فلا يمكن استخدام هذه الطريقة. في الوقت نفسه ، إذا تم استخدام طريقة BinaryRead ، فلا يمكن الوصول إلى مجموعة request.form. |
2. نظرة عامة على أعضاء كائن الاستجابة
أ) مجموعة من كائنات الاستجابة
يحتوي كائن الاستجابة على مجموعة واحدة فقط ، كما هو موضح في الجدول التالي ، والذي يحدد قيمة ملف تعريف الارتباط الذي تريد وضعه على نظام العميل ، والذي يعادل مباشرة مجموعة request.cookies.
جمع ووصف كائنات الاستجابة
| اسم المجموعة | يوضح |
| ملفات تعريف الارتباط | في الاستجابة الحالية ، قيم جميع ملفات تعريف الارتباط المرسلة إلى العميل ، هذه المجموعة هي الكتابة فقط |
ب) خصائص كائن الاستجابة
يوفر كائن الاستجابة أيضًا سلسلة من الخصائص التي يمكن قراءتها (في معظم الحالات) وتعديلها بحيث يمكن تكييف الاستجابة وفقًا للطلب. يتم تعيينها بواسطة الخادم ولا نحتاج إلى إعدادها. تجدر الإشارة إلى أنه عند تحديد خصائص معينة ، قد يكون بناء الجملة المستخدمة مختلفًا عما يستخدم عادة.
خصائص وأوصاف كائنات الاستجابة
| ملكية | يوضح |
| buuffer = صحيح | خطأ | قراءة/الكتابة ، منطقية ، تشير إلى ما إذا كان يتم تخزين الإخراج الذي تم إنشاؤه بواسطة صفحة ASP في المخزن المؤقت IIS حتى تتم معالجة جميع البرامج النصية للخادم على الصفحة الحالية أو تتم استدعاء طرق التدفق ويتم استدعاء طرق النهاية. يجب تعيين هذه الخاصية قبل إرسال أي مخرج (بما في ذلك معلومات الإبلاغ عن HTTP) إلى IIS. لذلك ، في ملف .asp ، يجب أن يكون هذا الإعداد في السطر الأول بعد بيان <٪@language = ... ٪>. ASP 3.0 التخزين المؤقت الافتراضي على (صواب) ، بينما في الإصدارات السابقة ، يتم إيقاف تشغيله (خطأ) |
| cachecontrolsetting | اقرأ/الكتابة ، نوع الحرف ، قم بتعيين هذه الخاصية على السماح لخادم الوكيل بتخزين Cache. |
| charset = القيمة | قراءة/الكتابة ، نوع الحرف ، إرفاق اسم مجموعة الأحرف المستخدمة في رأس نوع محتوى HTTP الذي تم إنشاؤه بواسطة الخادم لكل استجابة (على سبيل المثال: ISO-Latin-7) |
| نوع المحتوى = نوع MIME | قراءة/الكتابة ، نوع الحرف ، حدد نوع محتوى HTTP للاستجابة ، ونوع MIME القياسي (مثل النص/XML أو الصورة/GIF). إذا كان افتراضيًا ، فهذا يعني أنه يتم استخدام نص نوع MIME/HTML ، ويخبر نوع المحتوى المتصفح نوع المحتوى المتوقع. |
| تنتهي صلاحية دقائق | القراءة/الكتابة ، تشير إلى أن طول الوقت صالح في الدقائق. ، لن يتم الاحتفاظ بالصفحة في التخزين المؤقت الخاص (المستخدم) أو العام (الوكيل) |
| تنتهي صلاحية #date المطلقة [الوقت] # | اقرأ/الكتابة ، نوع التاريخ/الوقت ، يشير إلى التاريخ والوقت المطلق عندما تنتهي صلاحية الصفحة ولم تعد صالحة |
| iSclientConnected | القراءة فقط ، Boolean ، تُرجع علامة الحالة حول ما إذا كان العميل لا يزال متصلاً وتنزيلًا. قبل تنفيذ الصفحة الحالية ، إذا تم نقل العميل إلى صفحة أخرى ، يمكن استخدام هذه العلامة لإحباط المعالجة (باستخدام طريقة الاستجابة. |
| صور (سلسلة الصور) | اكتب فقط ، نوع الحرف ، قم بإنشاء رأس صور لتحديد مستوى المفردات في محتوى الصفحة ، مثل العنف والجنس واللغة السيئة ، إلخ. |
| الحالة = رسالة رمز | قراءة/الكتابة ، نوع الحرف ، قيم الحالة والمعلومات التي تشير إلى ما إذا كان رأس HTTP المرسل إلى استجابة العميل يشير إلى ما إذا كانت معالجة الخطأ أو الصفحات ناجحة. على سبيل المثال 200 OK و 404 لم يتم العثور عليها |
ج) طرق كائن الاستجابة
يوفر كائن الاستجابة سلسلة من الطرق ، كما هو موضح في الجدول التالي ، مما يتيح المعالجة المباشرة لمحتوى الصفحة الذي تم إنشاؤه إلى العميل.
طرق وأوصاف كائنات الاستجابة
| طريقة | يوضح |
| addheader (الاسم ، المحتوى) | قم بإنشاء رأس HTTP مخصص باستخدام قيم الاسم والمحتوى وإضافته إلى الاستجابة. لا يمكن استبدال رأس موجود بنفس الاسم. بمجرد إضافة رأس ، لا يمكن حذفه. يجب استخدام هذه الطريقة قبل إرسال أي محتوى صفحة (أي النص و HTML) إلى العميل |
| AppendTolog (سلسلة) | عند استخدام تنسيق ملف تنسيق ملف السجل الممتد W3C ، أضف إدخالًا إلى ملف السجل لخادم الويب الذي طلبه المستخدم. على الأقل ، يتطلب تحديد ساق URL في صفحة الخصائص الموسعة للموقع الذي يحتوي على الصفحة |
| BinaryWrite (SafeArray) | اكتب SafeArray من النوع المتغير في دفق إخراج HTTP الحالي دون أي تحويل أحرف. من المفيد جدًا كتابة المعلومات غير السلسلة ، مثل البيانات الثنائية التي يطلبها تطبيق مخصص أو بايت ثنائي يشكل ملف صورة |
| واضح() | عندما يكون الاستجابة. ولكن يمكن استخدام رأس استجابة HTTP للتخلي عن الصفحات المكتملة جزئيًا |
| نهاية() | دع ASP ينهي البرنامج النصي لمعالجة الصفحة وإرجاع المحتوى الذي تم إنشاؤه حاليًا ، ثم يتخلى عن أي معالجة أخرى للصفحة |
| Flush () | أرسل جميع الصفحات المخزنة الحالية في المخزن المؤقت لـ IIS إلى العميل. عندما يكون الاستجابة. |
| إعادة التوجيه (URL) | عن طريق إرسال رأس كائن 302 extredHTTP في الاستجابة ، يرشد المتصفح صفحة العنوان المقابل وفقًا لعنوان URL السلسلة |
| اكتب (سلسلة) | اكتب أحرفًا محددة في دفق استجابة HTTP الحالي و IIS المخزن المؤقت لجعله جزءًا من صفحة الإرجاع |