تقدم هذه المقالة طرقًا مختلفة للتفاعل مع الخادم. الاسم الكامل لعنوان URL هو واصف الموارد. زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، زيادة ، إضافة ، زيادة ، حذف 4 عمليات. في هذه المرحلة ، يجب أن يكون لدى الجميع فهم عام.
1. وفقًا لمواصفات HTTP ، يتم استخدام GET لاكتساب المعلومات ، ويجب أن يكون آمنًا وقوة.
(1). بمعنى آخر ، يجب ألا تنتج الطلبات بشكل عام آثارًا جانبية. بمعنى أنه يحصل فقط على معلومات الموارد ، تمامًا مثل استفسارات قاعدة البيانات ، ولن يعدل البيانات ، ولن تؤثر على حالة الموارد.
* ملاحظة: يشير معنى الأمن هنا فقط إلى المعلومات غير المعدلة.
(2). هنا سأشرح مفهوم MI Wait:
Idempotent و Idempotnce هي مفهوم رياضي أو الكمبيوتر ، وعادة ما يكون في الجبر التجريدي.
انتظر بعض التعاريف:
بالنسبة للعمليات أحادية العين ، إذا كانت العملية هي نفسها بالنسبة لنتيجة حساب تشغيل العملية ونتيجة حساب العملية ، فإن نتيجة العملية هي نفس نتيجة العملية. على سبيل المثال ، فإن عملية القيمة المطلقة هي مثال.
بالنسبة لعمليات العين ، إذا كانت قيمتي العمليات المشاركة متساوية ، إذا كانت نتائج الحساب تساوي قيمتي العمليات المشاركة ، فإن قوة العملية تسمى الوظيفة ، فهناك قوة مركزة في الرقم الحقيقي ، أي الحد الأقصى (x ، x) = x.
بعد قراءة التفسير أعلاه ، يجب أن تفهم معنى الحصول على السلطة.
ولكن في التطبيقات العملية ، فإن الحكمين أعلاه ليسا صارمين للغاية. مثال على اقتباس مقالات الآخرين: على سبيل المثال ، يتم تحديث الصفحة الأولى لموقع الأخبار باستمرار. على الرغم من أن الطلب الثاني سيعود مجموعة مختلفة من الأخبار ، إلا أن العملية لا تزال آمنة وقوية ، لأنها تُرجع دائمًا الأخبار الحالية. في الأساس ، إذا كان الهدف هو أنه عندما يفتح المستخدم رابطًا ، فيمكنه أن يتأكد من أنه لا يستطيع تغيير الموارد من منظوره.
2. وفقًا لمواصفات HTTP ، يشير Post إلى أن طلب تغيير الموارد على الخادم قد يعدل المورد على الخادم. استمر في اقتباس المثال أعلاه: لا يزال يأخذ الأخبار كمثال.
أعلاه ، تحدث أعلاه عن بعض مبادئ Get and Post في مواصفات HTTP. ومع ذلك ، في العمل الفعلي ، لم يفعل الكثير من الناس ذلك وفقًا لمواصفات HTTP.
1. كثير من الناس جشعون ومريحون.
2. للزيادة ، حذف ، تغيير ، التحقق ، يمكنك بالفعل إكمالها من خلال GET/POST دون استخدام PUT و DELETE.
3. والآخر هو أن مصممي إطار عمل MVC المبكر لم يعاملوا عناوين URL بوعي كموارد مجردة ، وبالتالي فإن مشكلة أكثر جدية هي أن إطار الويب التقليدي MVC يدعم بشكل أساسي فقط الحصول على طريقين HTTP غير مدعوم من خلال وضع وحذف.
* ببساطة توضح MVC: MVC موجود في الأصل في برنامج سطح المكتب. الغرض من استخدام MVC هو فصل رمز التنفيذ لـ M و V ، بحيث يمكن للبرنامج نفسه استخدام نماذج تعبير مختلفة.
تصف النقاط الثلاث المذكورة أعلاه المجموعة القديمة من الأنماط (دون امتثال صارم لمواصفات HTTP).
بعد الحديث عن السبب الأصلي ، ننظر إلى الفرق بين Get and Post من الصورة السطحية:
1. سيتم إرفاق البيانات المطلوبة من THEGET بعنوان URL (أي ، ضع البيانات في رأس بروتوكول HTTP) لتقسيم عنوان URL ونقل البيانات ، وتتصل المعلمات ، مثل: login.action؟ Hyddd & Password = Idontknow & التحقق = ٪ E4 ٪ BD ٪ A0 ٪ E5 ٪ A5 ٪ BD. إذا كانت البيانات هي الحروف/الأرقام الإنجليزية ، فإن الإرسال الأصلي ، إذا كان مساحة ، قم بتحويله إلى+، إذا كانت أحرفًا صينية/أخرى ، فشكل سلسلة مباشرة مع BASE64 للحصول عليها BD ، منها xx في ٪ xx هي ASCII يمثلها سداسي عشري.
يضع Post البيانات المقدمة في حزمة HTTP.
2. يمكن أن تكون البيانات التي تم تقديمها فقط 1024 بايت. التقاطع التقاطع
تم نقل الجملة أعلاه من مقالات أخرى.
(1). في الواقع ، لا يحتوي عنوان URL على مشكلة الحد الأعلى للمعلمة ، ولا يحد مواصفات بروتوكول HTTP من طول عنوان URL. هذا الحد هو قيود محددة للمتصفح والخادم. حد IE على عنوان URL هو 2083 بايت (2K+35). بالنسبة للمتصفحات الأخرى ، مثل Netscape و Firefox ، وما إلى ذلك ، لا يوجد قيود طويلة المدى ، ويعتمد تقييدها على دعم نظام التشغيل.
لاحظ أن هذا يقتصر على طول عنوان URL بالكامل ، وليس فقط طول بيانات قيمة المعلمة. [انظر البيانات المرجعية 5]
(2).
بالنسبة لبرامج ASP ، فإن كائن الطلب لديه حد طول بيانات قدره 100 ألف عند معالجة كل مجال. ولكن إذا كنت تستخدم request.binaryRead ، فلا يوجد حد.
من هذا الامتداد ، زادت Microsoft القيود المفروضة على IIS 6.0 لأسباب أمنية. ما زلنا بحاجة إلى الانتباه:
1).
2).
3).
IIS 6.0 لم يكن لديه هذه القيود من قبل. [انظر البيانات المرجعية 5]
لذا فإن 80K و 100 كيلو المذكورة أعلاه قد تكون مجرد القيمة الافتراضية (ملاحظة: لم أكن أؤكد معلمات IIS4 و IIS5) ، ولكن يجب تعيينها بنفسي. نظرًا لأن القيم الافتراضية لهذه المعلمات لكل إصدار من IIS مختلفة ، يرجى الرجوع إلى مستند تكوين IIS ذي الصلة.
3. في ASP ، يحصل الخادم على معلمة GET request مع request.quareString ، والحصول على معلمة طلب POST باستخدام request.form. في JSP ، استخدم request.getParameter (/xxxx/) للحصول عليه & Password = Hyddd ، استخدم الطلب. في PHP ، يمكنك استخدام $ _get و $ _post للحصول على البيانات في Get and Posts ، بينما يمكن لـ $ _request الحصول على بيانات في اثنين من طلبات GET والنشر. تجدر الإشارة إلى أنه سيكون هناك مخاطر خفية لاستخدام $ _request في JSP في JSP و PHP.
4. أمن بوست أعلى من أمان الحصول. ملاحظة: السلامة المذكورة هنا ليست نفس مفهوم الأمان المذكور أعلاه. إن معنى الأمان أعلاه ليس فقط تعديل البيانات ، ومعنى الأمان هنا هو معنى الأمان الحقيقي. لأن (1) قد تكون صفحة تسجيل الدخول متصفحًا. طلب الموقع هجوم التزوير.
لتلخيص ، هو طلب لإرسال البيانات إلى الخادم ، وهو طلب لإرسال البيانات إلى الخادم.