موصى به: نصائح ASP: تحسين كفاءة استخدام مجموعات الطلب يعد الوصول إلى مجموعة ASP لاستخراج القيمة عملية تستغرق وقتًا طويلاً وحسابًا. نظرًا لأن هذه العملية تحتوي على سلسلة من عمليات البحث عن المجموعات ذات الصلة ، فهذا أبطأ بكثير من الوصول إلى متغير محلي. لذلك إذا كنت تنوي استخدام قيمة من مجموعة الطلبات عدة مرات في الصفحة
الطلب والاستجابة هما أكثر الكائنات المدمجة شيوعًا التي توفرها ASP. بين المتصفح (أو وكيل المستخدم الآخر) وخادم الويب ، يمكن الوصول إلى تبادل المعلومات الذي يحدث في الطلب والاستجابة وإدارتها من خلال كائنين مدمجين في ASP ، يسمى كائنات الطلب والاستجابة.
يتطلب كل الأعمال التي يتعين تنفيذها تقريبًا في صفحة ASP الوصول إلى هذين الكائنين. سيؤثر استخدام هذين الكائنين على كفاءة وموثوقية الصفحة. بطبيعة الحال ، فإن الغرض الرئيسي من ذلك هو الوصول إلى القيمة المرسلة إلى الخادم من قبل المستخدم ، أي الحصول على من فئة <Porm> من صفحة HTML أو إرفاقها بعنوان URL كسلسلة استعلام ، وإنشاء مخرجات مناسبة للعودة إلى المستخدم ، ويمكنهم مشاركة العديد من العوامل نفسها. على سبيل المثال ، يمكن كلا الكائنين استخدام ملفات تعريف الارتباط المخزنة على الكمبيوتر العميل.
لذلك ، نقوم بتقسيم المحتوى إلى جزأين مستقلين (جزء من كل كائن) ، وبدء أولاً بتبادل المعلومات بين العميل والخادم ، ثم دراسة كل كائن.
محتوى البحث هو:
· كيف يتواصل العميل مع الخادم لتسليم الويب أو الموارد الأخرى.
· تفاصيل كائنات الطلب والاستجابة ، وما هي المشتركة.
كيفية الوصول إلى القيمة المقابلة من خلال نموذج وسلسلة الاستعلام.
· كيفية قراءة أو إنشاء ملفات تعريف الارتباط وتخزينها على كمبيوتر العميل.
· ما هي متغيرات الخادم؟ كيفية الوصول إلى رؤوس HTTP وتعديلها.
· وصف التغييرات على الإدخالات الأخرى ذات الصلة ، مثل استخدام شهادة العميل.
التواصل بين العملاء والخوادم
لتوفير المساحة ، يتم استخدام متصفح Word في المحتوى التالي. ولكن يجب أن نتذكر أن التطبيقات التي يمكنها الوصول إلى صفحات الويب ليست فقط متصفحات ، ولكن العديد من التطبيقات الخاصة تنزيل صفحات الويب من المواقع ، مثل برامج العميل الخاصة المصممة لأولئك الذين لديهم عيوب في الرؤية أو أولئك الذين يعانون من صعوبات أخرى في استخدام المتصفح المعتاد. المثال الأكثر وضوحًا هو الروبوت الذي تستخدمه محركات البحث للوصول إلى المواقع على الويب. ضع في اعتبارك هذه العوامل بشكل شامل ، بما في ذلك متصفحات الويب العادية ، يجب أن تكون الكلمة الدقيقة وكيل مستخدم.
محادثة طلب الصفحة
عندما يقوم المتصفح بتقديم طلب صفحة إلى موقع ويب ، من الواضح أنه يتعين عليه إخبار الخادم بالصفحة التي يطلبها. أول ما يجب فعله هو إنشاء اتصال بالخادم من خلال اسم المجال ، ثم توفير المسار الكامل واسم الصفحة المطلوبة. لماذا تحتاج المسار والاسم الكامل؟ الويب هي بيئة بلا حدود ، لذلك من الضروري إنشاء جلسة لتحديد كل عميل (كيف يمكن لـ ASP القيام بذلك لاحقًا).
هذا يعني أنه في كل مرة يكمل فيها الخادم إرسال الصفحة إلى العميل ، ينسى الخادم العميل تمامًا. لذلك عندما يطلب العميل الصفحة التالية ، يكون ذلك تمامًا مثل زائر جديد. لا يمكن أن يتذكر الخادم هذا العميل ، وبناءً على ذلك ، لا يمكنه تحديد الصفحة التي طلبوها في المرة الأخيرة. لأنه لا يمكنك استخدام مسار نسبي لتوفير صفحة ، حتى لو كانت الصفحة تحتوي على رابط نسبي ، على سبيل المثال:
< a href = http: //www.cuoxincom/download.asp> الصفحة التالية </a>
سيقوم المتصفح تلقائيًا بإنشاء عنوان URL الجديد الكامل للصفحة باستخدام المجال ومسار الصفحة الحالية ؛ أو استخدم العنصر <Case> في قسم <Head> من الصفحة لإخبار المتصفح عن عنوان URL لجميع الروابط في الصفحة. على سبيل المثال:
< base herf = http: //www.cuoxin.com >
عند توجيه الماوس إلى رابط إلى صفحة ، يمكن رؤيته في شريط حالة المتصفح. تم دمج المسار إلى الصفحة الحالية والمجال الحالي أو المجال الأساسي أو المسار الأساسي مع اسم الصفحة المطلوبة.
1. تفاصيل طلبات العملاء
مزيج المسار الكامل واسم الصفحة المطلوبة هو السكن الوحيد للخادم عندما يطلب المتصفح الصفحة. يمكن أن يتضمن طلب المتصفح أيضًا إقامة مضيف المتصفح ونظام التشغيل الذي يعمل من قبل العميل. سيتغير محتوى المعلومات الفعلي وفقًا لذلك مع المتصفح ، ويمكن توفير عدد صغير منه فقط بواسطة تطبيقات أخرى مثل Robot Engine Robot. للحصول على فهم أوضح لهذه المعلومات ، إليك زوج من الصفحات الصادرة من IE 5.0
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/4/99 10:10:13 AM
عامل المستخدم: Mozilla/4.0 (متوافق ؛ MSIE 5.0 ؛ Windows 98)
المضيف: 212.250.238.67
الاتصال: الحفاظ على الحفل
من هذا ، يمكن ملاحظة أن المعلومات تحتوي على تفاصيل حول وكيل المستخدم واتصال المستخدم (مثل اللغة الافتراضية) ، بالإضافة إلى قائمة بأنواع الملفات أو التطبيقات المقبولة ، والتي هي من نوع MIME ، وسترى المزيد لاحقًا. يمكن للمتصفح قبول العديد من ملفات الصور وأنواع ملفات 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/8/99 10:27:16 صباحًا
< HTML >
... بقية الصفحة ...
</html >
يمكن ملاحظة أن الخادم يشرح البرنامج والإصدار الذي يستخدمه للعميل. يوضح السطر الأول أن بروتوكول HTTP يتم استخدامه وحالة رمز الإرجاع. الرسالة 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 الصادرة عن طلب العميل وقيم العديد من متغيرات البيئة لخادم الويب ، كل عضو هو للقراءة فقط |
ب) خصائص كائن الطلب
يتم عرض الخصائص الفريدة ووصف كائن الطلب في الجدول التالي. يوفر معلومات حول عدد البايتات التي يطلبها المستخدم. نادرا ما يستخدم في صفحات ASP. نركز عادة على القيمة المحددة بدلاً من سلسلة الطلب بأكملها.
| ملكية | يوضح |
| totlbytes | للقراءة فقط ، إرجاع عدد بايت بايت للطلب الصادر عن العميل |
ج) طرق طلب الطلب
يتم عرض الطريقة الوحيدة ووصف كائن الطلب في الجدول التالي ، والذي يسمح بالوصول إلى المحتوى الكامل لجزء طلب المستخدم الذي تم تمريره إلى الخادم من شريحة <Porm>.
طريقة ووصف كائن الطلب
| طريقة | يوضح |
| BinaryRead (العد) | عند إرسال البيانات إلى الخادم كجزء من طلب النشر ، يتم الحصول على بايتات البيانات من طلب العميل ويتم إرجاع صفيف متغير (أو SafeArray). إذا كان رمز ASP يشير بالفعل إلى مجموعة request.form ، فلا يمكن استخدام هذه الطريقة. في الوقت نفسه ، إذا تم استخدام طريقة BinaryRead ، فلا يمكن الوصول إلى مجموعة request.form. |
2. نظرة عامة على أعضاء كائن الاستجابة
أ) مجموعة من كائنات الاستجابة
يحتوي كائن الاستجابة على مجموعة واحدة فقط ، كما هو موضح في الجدول التالي ، والذي يحدد قيمة ملف تعريف الارتباط الذي تريد وضعه على نظام العميل ، والذي يعادل مباشرة مجموعة request.cookies.
جمع ووصف كائنات الاستجابة
| اسم المجموعة | يوضح |
| ملفات تعريف الارتباط | في الاستجابة الحالية ، قيم جميع ملفات تعريف الارتباط المرسلة إلى العميل ، هذه المجموعة هي الكتابة فقط |
ب) خصائص كائن الاستجابة
يوفر كائن الاستجابة أيضًا سلسلة من الخصائص التي يمكن قراءتها (في معظم الحالات) وتعديلها بحيث يمكن تكييف الاستجابة وفقًا للطلب. يتم تعيينها بواسطة الخادم ولا نحتاج إلى إعدادها. تجدر الإشارة إلى أنه عند تحديد خصائص معينة ، قد يكون بناء الجملة المستخدمة مختلفًا عما يستخدم عادة.
خصائص وأوصاف كائنات الاستجابة
| ملكية | يوضح |
| buuffer = صحيح | خطأ | قراءة/الكتابة ، منطقية ، تشير إلى ما إذا كان يتم تخزين الإخراج الذي تم إنشاؤه بواسطة صفحة ASP في المخزن المؤقت IIS حتى تتم معالجة جميع البرامج النصية للخادم على الصفحة الحالية أو تتم استدعاء طرق التدفق ويتم استدعاء طرق النهاية. يجب تعيين هذه الخاصية قبل إرسال أي مخرج (بما في ذلك معلومات الإبلاغ عن HTTP) إلى IIS. لذلك ، في ملف .asp ، يجب أن يكون هذا الإعداد في السطر الأول بعد بيان <٪@language = ... ٪>. ASP 3.0 التخزين المؤقت الافتراضي على (صواب) ، بينما في الإصدارات السابقة ، يتم إيقاف تشغيله (خطأ) |
| cachecontrolsetting | اقرأ/الكتابة ، نوع الحرف ، قم بتعيين هذه الخاصية على الأماكن العامة للسماح لخادم الوكيل بتخزين صفحات ذاكرة التخزين المؤقت. إذا كان ذلك خاصًا ، فإنه يحظر على خادم الوكيل ذاكرة التخزين المؤقت. |
| 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 لجعلها جزءًا من صفحة الإرجاع |
المشاركة: الاتصال الكامل مع تطبيقات الإجراءات المخزنة في تطوير ASP هناك العديد من المقالات حول ASP والإجراءات المخزنة ، لكنني أشك في أن المؤلفين قد مارسوها بالفعل. قرأت الكثير من المعلومات ذات الصلة عندما كنت في البداية ووجدت أن العديد من الأساليب المقدمة لم تكن كذلك في الممارسة العملية. للتطبيقات البسيطة ، هذه البيانات