في تطبيقات B/S ، يتم إكمال تفاعل البيانات بين الأمام والواجهة الخلفية من خلال النموذج في HTML. يوفر Form طريقتين لنقل البيانات - Get and Post. على الرغم من أنها في كلا الطرق لتقديم البيانات ، إلا أنها تختلف بالفعل عندما تنتقل بالفعل وقد يكون لها تأثيرات خطيرة على البيانات. على الرغم من أن حاوية الويب قد منعت بعض الاختلافات بين الاثنين من أجل تسهيل اكتساب القيم المتغيرة ، إلا أنه سيكون من المفيد فهم الاختلافات بين الاثنين في البرمجة المستقبلية.
تتوافق طرق Get and Post in Form مع طرق GET والنشر في بروتوكول HTTP على التوالي أثناء نقل البيانات. الاختلافات الرئيسية بين الاثنين هي كما يلي:
1. يتم استخدام GET للحصول على بيانات من الخادم ، بينما يتم استخدام POST لتمرير البيانات إلى الخادم.
2. احصل على إضافة البيانات في النموذج إلى عنوان URL الذي يشير إليه الإجراء في متغير النموذج = القيمة ، ويستخدم الاثنان "؟" للاتصال ، بينما يتصل "&" بين كل متغير ؛ تتمثل Post في وضع البيانات في النموذج في هيئة البيانات ، وتنقلها إلى عنوان URL الذي يشير إليه الإجراء بالطريقة التي يتوافق بها المتغير والقيمة مع القيمة.
3. الحصول على غير آمن لأنه أثناء عملية الإرسال ، يتم وضع البيانات في عنوان URL المطلوب. في الوقت الحاضر ، ستقوم العديد من الخوادم الحالية أو خوادم الوكيل أو وكلاء المستخدم بتسجيل عنوان URL المطلوب في ملف السجل ثم وضعه في مكان ما ، بحيث يمكن رؤية بعض معلومات الخصوصية من قبل أطراف ثالثة. بالإضافة إلى ذلك ، يمكن للمستخدمين أيضًا رؤية البيانات المقدمة مباشرة على المتصفح ، وسيتم عرض بعض رسائل النظام الداخلي أمام المستخدم. جميع عمليات البريد غير مرئية للمستخدم.
4. كمية البيانات المرسلة بواسطة GET صغيرة ، ويرجع ذلك أساسًا إلى الحد من طول عنوان URL ؛ ويمكن للنشر نقل كمية كبيرة من البيانات ، بحيث يمكنك فقط استخدام Post عند تحميل الملفات (بالطبع هناك سبب آخر ، سيتم ذكره لاحقًا).
5. الحصول على تقييد قيمة مجموعة بيانات نماذج النماذج لتكون أحرف ASCII ؛ بينما يدعم Post مجموعة أحرف ISO10646 بالكامل.
6. الحصول على الطريقة الافتراضية للنموذج.
لتلخيص:
الحصول على الطريقة: تمرير معلمات البيانات في سلسلة عنوان URL نفسها ، ويمكن قراءتها مباشرة من متغير "Query_String" على جانب الخادم. إنه فعال ، لكنه يفتقر إلى الأمان ولا يمكنه معالجة البيانات المعقدة (لا يمكن أن يكون فقط سلاسل ، على سبيل المثال ، في Servlet/JSP ، لا يمكنه التعامل مع وظائف Java مثل المتجه) ؛
طريقة النشر: من حيث طريقة الإرسال ، سيتم تعبئة المعلمات ونقلها في بيانات البيانات وقراءة من متغير بيئة Content_Length ، وهو مريح لنقل البيانات الأكبر. في الوقت نفسه ، نظرًا لأن البيانات لا تتعرض في شريط عناوين المتصفح ، فإن الأمان مرتفع نسبيًا ، ولكن ستتأثر كفاءة المعالجة هذه.