المتشعب الحصول على المعلمات. تعلم كيفية العمل مع طلبات GET وPOST

موارد الويب الحديثة لا توفر المعلومات للزائر فحسب، بل تتفاعل معه أيضًا. للتفاعل مع المستخدم، تحتاج إلى الحصول على بعض المعلومات منه. هناك عدة طرق للحصول على البيانات، الطرق الشائعة جدًا هي يحصلو بريد. وبناء على ذلك في بي أتش بيهناك دعم لطرق نقل البيانات هذه يحصلو بريد. دعونا نرى كيف تعمل هذه الأساليب.
الحصول على الطريقةبيانات الحصول على الطريقةيتم تمريرها عن طريق إضافتها إلى عنوان URL للبرنامج النصي الذي يتم استدعاؤه لمعالجة المعلومات المستلمة. لشرح هذه الطريقة، اكتب عنوان URL الخاص بالمورد في شريط عنوان المتصفح وأضف أولاً علامة استفهام (؟) ثم السطر num=10. على سبيل المثال

http://domain.ru/script.php?num=10


إذا كان لديك خادم محلي، فعادةً ما يكون النطاق هو localhost، ومن ثم سيبدو الإدخال السابق هكذا

http://localhost/script.php?num=10


في هذه الحالة، نقوم بتمرير معلمة num تساوي 10. لإضافة المعلمات التالية، يحتاج البرنامج النصي إلى استخدام فاصل علامة الضم (&)، على سبيل المثال

http://domain.ru/script.php?num=10&type=new&v=text


في هذه الحالة، قمنا بتمرير ثلاث معلمات إلى البرنامج النصي: num بالقيمة 10، واكتب بالقيمة "new" وv بالقيمة "text".
للحصول على هذه المعلمات في البرنامج النصي، تحتاج إلى استخدام المصفوفة المضمنة $_GET $_GET["num"], $_GET["type"],$_GET["v"]. ستحتوي عناصر المصفوفة هذه على قيم المعلمات التي تم تمريرها. لتوضيح هذا المثال، قم بإنشاء ملف script.php بالمحتويات التالية



التحقق من صحة طريقة GET في PHP


صدى ($_GET["num"]."
");
صدى ($_GET["نوع"]."
");
صدى ($_GET["v"]);
?>




والآن اتصل بهذا الملف في المتصفح

http://path/script.php?num=10&type=new&v=text


وسترى المعلمات التي تم تمريرها في نافذة المتصفح. ولكن إذا قمت باستدعاء هذا الملف بدون معلمات إضافية http://path/script.php، فسترى أخطاء سينتجها المترجم بي أتش بيأنه لا توجد مثل هذه العناصر في المصفوفة $_GET. من الممكن تخصيص أكثر من مقال للتحقق من البيانات الواردة من المستخدم، لذلك لن أتطرق في هذا المقال لهذه النقطة.
كما تفهم، فإن إجبار المستخدم على كتابة البيانات في شريط عنوان المتصفح ليس جيدًا جدًا وغير مريح تمامًا. ولذلك، لتلقي البيانات من المستخدم تحتاج إلى استخدام نماذج HTML. دعونا نكتب نموذج HTML بسيط.


أدخل الرقم

هل لديك جهاز كمبيوتر؟

تعليقك:





اسمحوا لي أن أعلق قليلا على النموذج الذي تم إنشاؤه. يتم إنشاء النماذج باستخدام علامة النموذج. يتم إنشاء حقول النموذج باستخدام علامات الإدخال والتحديد ومنطقة النص (يمكنك قراءة المزيد). في علامة النموذج، تحدد سمة الإجراء عنوان URL للبرنامج النصي الذي سيتلقى بيانات النموذج. في حالتنا، قمنا بتحديد ملف script.php الموجود لدينا. تحدد سمة الطريقة طريقة إرسال البيانات. لقد حددنا الطريقة يحصل. الآن عرفنا إلى أي ملف سيتم نقل بيانات النموذج، وبأي طريقة، كل ما تبقى هو معرفة أين نبحث عنها؟!
سيتم تمرير بيانات النموذج هذه إلى مورد الويب بواسطة المتصفح عن طريق إلحاقها بعنوان URL: أولاً ستكون هناك علامة استفهام (؟)، ثم سيتم عرض المعلمات مفصولة بعلامة العطف (&). سيتم أخذ اسم المعلمة من سمة الاسم، والتي يجب تحديدها لأي حقل نموذج. تعتمد قيمة المعلمة على نوع الحقل. إذا كان الحقل عبارة عن حقل نصي، فستكون القيمة هي النص الذي أدخله المستخدم. إذا كان الحقل عبارة عن قائمة أو مجموعة من أزرار الاختيار أو خانات الاختيار، فستكون قيمة المعلمة هي قيمة سمة القيمة للعنصر المحدد. اسمحوا لي أن أشرح استخدام نموذجنا كمثال. إذا أدخل المستخدم الرقم 10 في حقل الإدخال، فسيكون اسم المعلمة num (قيمة سمة الاسم لعلامة الإدخال) وستكون القيمة 10 (الرقم الذي أدخله المستخدم). وبناءً على ذلك، سيقوم المتصفح بإنشاء زوج "num=10". إذا قام المستخدم بتحديد الخيار "نعم" من القائمة، فسيكون اسم المعلمة من النوع (قيمة سمة الاسم لعلامة التحديد) وستكون القيمة نعم (قيمة سمة القيمة للخيار بطاقة شعار). وفقًا لذلك، سيقوم المتصفح بإنشاء زوج "type=yes".
الآن سوف نقوم بوضع هذا النموذج على صفحة forma.php.



نموذج لنقل البيانات باستخدام أساليب GET وPHP



أدخل الرقم

هل لديك جهاز كمبيوتر؟

تعليقك:









أدخل أي قيم في حقول النموذج وانقر على زر "إرسال". بعد الضغط على الزر، سيفتح المتصفح صفحة أخرى (script.php) وسيتم عرض البيانات التي أدخلتها في نافذة المتصفح. أعتقد أن السبب واضح: سيقوم المتصفح بتمرير البيانات إلى البرنامج النصي script.php، وفي البرنامج النصي ستتم معالجة هذه البيانات وعرضها على الشاشة.
طريقة ما بعدالآن دعونا نلقي نظرة على كيفية عمل الطريقة بريد.
لإرسال البيانات باستخدام بريدتحتاج إلى استخدام نماذج HTML. كما نتذكر، فإن سمة الطريقة لعلامة النموذج هي المسؤولة عن طريقة إرسال بيانات النموذج. لذلك، تحتاج إلى تحديد القيمة POST في سمة الطريقة لعلامة النموذج. وبخلاف ذلك، يمكن أن يكون النموذج هو نفسه الموجود في أسلوب GET. دعونا نغير النموذج الذي استخدمناه بالفعل لنقل البيانات باستخدام طريقة GET، إلى الإرسال باستخدام طريقة POST.


أدخل الرقم

هل لديك جهاز كمبيوتر؟

تعليقك:





كما ترون، يظل النموذج كما هو باستثناء سمات الطريقة والإجراء. سيتم الآن تمرير البيانات إلى البرنامج النصي script_post.php. لنضع نموذجنا على صفحة forma_post.php.



نموذج لنقل البيانات باستخدام طرق POST وPHP



أدخل الرقم

هل لديك جهاز كمبيوتر؟

تعليقك:









نحتاج الآن إلى كتابة برنامج نصي يقوم بمعالجة بيانات النموذج الخاصة بنا.
لتلقي البيانات في البرنامج النصي باستخدام الطريقة التي تم تمريرها بريدتحتاج إلى استخدام مجموعة مدمجة $_POST. ستكون مفاتيح هذه المصفوفة هي أسماء المعلمات. في حالتنا نحن بحاجة إلى استخدام $_POST["num"], $_POST["type"],$_POST["v"]. ستحتوي عناصر المصفوفة هذه على قيم البيانات المنقولة. كما ترون، يتم التعبير عن الفرق من استخدام طريقة GET فقط في استخدام المصفوفة $_POST. لذلك لن يكون من الصعب علينا كتابة ملف script_post.php:



التحقق من صحة طريقة POST في PHP


صدى ($_POST["num"]."
");
صدى ($_POST["نوع"]."
");
صدى ($_POST["v"]);
?>




الآن افتح الملف forma_post.php في متصفحك. أدخل بعض البيانات في حقول النموذج وانقر على زر "إرسال". ربما لاحظت الآن الفرق بين طريقة POST وطريقة GET - حيث لم تظهر بيانات النموذج في شريط عنوان المتصفح. البيانات حسب الطريقة بريدلا يمكن أن تنتقل من خلال شريط عنوان المتصفح. وهذا فرق كبير يجب تذكره.
في بي أتش بيبغض النظر عن كيفية إرسال البيانات - طريقة POST أو طريقة GET - يمكنك استلام البيانات باستخدام المصفوفة $_REQUEST. مقارنة بين طرق GET وPOSTعند استخدام طريقة GET، يتم نقل البيانات عن طريق إلحاقها بعنوان URL. وبالتالي، ستكون مرئية للمستخدم، وهو أمر ليس جيدًا دائمًا من الناحية الأمنية. كما سيعتمد الحد الأقصى لمقدار البيانات المنقولة على المتصفح - على الحد الأقصى المسموح به لعدد الأحرف في شريط عنوان المتصفح.
عند استخدام طريقة POST، لن تكون البيانات مرئية للمستخدم (لا يتم عرضها في شريط عنوان المتصفح). وبالتالي فهي أكثر أمانًا، وبالتالي فإن البرنامج الذي يعالج هذه البيانات يتمتع بحماية أكبر من الناحية الأمنية. كما أن حجم البيانات المرسلة غير محدود عمليا.
عند اختيار طريقة نقل البيانات، عليك أن تأخذ في الاعتبار الميزات المذكورة أعلاه واختيار الطريقة الأنسب.

يمكن لعملاء المتصفح إرسال المعلومات إلى خادم الويب.

قبل أن يرسل المتصفح المعلومات، يقوم بتشفيرها باستخدام نظام يسمى ترميز URL. في هذا المخطط، يتم ربط أزواج الاسم/القيمة بعلامات متساوية، ويتم فصل الأزواج المختلفة بعلامة العطف.

Name1=value1&name2=value2&name3=value3

تتم إزالة المسافات واستبدالها بالحرف +، ويتم استبدال أي أحرف أخرى غير أبجدية رقمية بقيم سداسية عشرية. بمجرد تشفير المعلومات، يتم إرسالها إلى الخادم.

الحصول على الطريقة

ترسل طريقة GET معلومات المستخدم المشفرة والملحقة بطلب الصفحة. هل الصفحات والمعلومات المشفرة منفصلة عن بعضها البعض؟ علامة استفهام.

http://www.test.com/index.htm?name1=value1&name2=value2

  • تنتج طريقة GET سلسلة طويلة تظهر في سجلات الخادم الخاص بك في حقل "الموقع" بالمتصفح.
  • تقتصر طريقة GET على إرسال ما يصل إلى 1024 حرفًا فقط.
  • لا تستخدم أبدًا طريقة GET إذا كان لديك كلمة مرور أو معلومات حساسة أخرى لإرسالها إلى الخادم.
  • لا يمكن استخدام GET لنقل البيانات الثنائية، مثل الصور أو المستندات النصية، إلى الخادم.
  • يمكن الوصول إلى البيانات المرسلة بواسطة طريقة GET باستخدام متغير البيئة QUERY_STRING.
  • توفر PHP المصفوفة الترابطية $_GET للوصول إلى جميع المعلومات المرسلة باستخدام طريقة GET.

if($_GET["name"] || $_GET["age"]) ( echo "Welcome ". $_GET["name"]; echo "أنت ". $_GET["age"]. " سنة "؛ مخرج()؛ )

اسم: عمر:

طريقة ما بعد

طريقة بريدينقل المعلومات عبر رؤوس HTTP. يتم ترميز المعلومات كما هو موضح في حالة الطريقة يحصل، ووضعها في الرأس QUERY_STRING.

  • طريقة POST ليس لها حد لحجم البيانات التي يجب إرسالها.
  • يمكن استخدام طريقة POST لإرسال ASCII بالإضافة إلى البيانات الثنائية.
  • تمر البيانات المرسلة باستخدام طريقة POST عبر رأس HTTP، لذا يعتمد الأمان على بروتوكول HTTP. باستخدام Secure HTTP، يمكنك التأكد من أن معلوماتك آمنة.
  • توفر PHP مصفوفة ترابطية $_POST للوصول إلى جميع المعلومات المرسلة باستخدام طريقة POST.

جرب المثال التالي عن طريق وضع الكود المصدري في البرنامج النصي test.php.

if($_POST["name"] || $_POST["age"]) ( if (preg_match("[^A-Za-z"-]",$_POST["name"])) ( يموت (" يجب أن يكون الاسم والاسم غير صالحين ألفا"); ) echo "مرحبًا ". $_POST["name"]; echo "أنت ".$_POST["age"]. "عمرك سنة.";exit(); )

اسم: عمر:

$_REQUEST متغير

متغير PHP $_REQUESTيحتوي على محتويات مثل $_GET, $_POST، لذا $_COOKIE. سنناقش المتغير $_COOKIEعندما نتحدث عن ملفات تعريف الارتباط.

يمكن استخدام متغير PHP $_REQUEST لاسترداد النتيجة من بيانات النموذج المرسلة باستخدام طريقتي GET وPOST.

تعتبر أساليب GET وPOST في HTTP وHTTPS الطريقتين الأكثر شيوعًا المستخدمة لنقل البيانات من العميل إلى الخادم باستخدام HTTP (بروتوكول نقل النص التشعبي). يمكن استخدام كل من GET وPOST لإرسال طلب وتلقي الرد، ولكن هناك اختلافات كبيرة بينهما.

يعد الفرق بين طلبات GET وPOST في HTTP أو HTTPS سؤالًا شائعًا في كل مقابلة برمجة ويب. نظرًا لأن HTML مستقل عن تكنولوجيا خادم الويب مثل Java أو ASP أو PHP وHTTP هو البروتوكول الرئيسي في مساحة الإنترنت، فلا يمكن تجاهل أهمية فهم أساليب GET وPOST بشكل واضح. في هذه المقالة، سنلقي نظرة على ما هي طريقة HTTP GET، وما هي طريقة HTTP POST، ومتى يتم استخدام كل طلب، وما هو الفرق بينهما. دعونا ننظر إلى كل مفهوم على حدة.

ما هو HTML؟

HTML هي اللغة المستخدمة لإنشاء صفحات الويب. يشير النص التشعبي إلى الارتباطات التشعبية التي قد تحتوي عليها صفحة HTML. تشير لغة الترميز إلى طريقة استخدام العلامات لتحديد تخطيط الصفحة والعناصر الموجودة على الصفحة.
فيما يلي مثال لـ HTML يُستخدم لتحديد صفحة ويب أساسية تحتوي على عنوان وفقرة واحدة من النص:



<Голова>
<Название>TechTerms.com

<Тело>

هذا مثال لفقرة في HTML.

يحدد السطر الأول نوع المحتوى الموجود في المستند., و ، والتي تم تضمينها جميعًا في المثال أعلاه. يتم وضع عنوان الصفحة والبيانات التعريفية والروابط لملفات الربط بين محتوى الصفحة الفعلي وبين العلامات .

لقد مر الويب بالعديد من التغييرات على مدى العقود القليلة الماضية، ولكن HTML كانت دائمًا اللغة الأساسية المستخدمة لتطوير صفحات الويب. ومن المثير للاهتمام أنه على الرغم من أن مواقع الويب أصبحت أكثر تقدمًا وتفاعلية، إلا أن لغة HTML أصبحت أكثر بساطة. إذا قمت بمقارنة مصدر صفحة HTML5 بصفحة مشابهة مكتوبة بلغة HTML 4.01 أو XHTML 1.0، فستحتوي صفحة HTML5 على تعليمات برمجية أقل. وذلك لأن HTML الحديث يعتمد على Cascading Style Sheets أو JavaScript لتنسيق جميع العناصر تقريبًا داخل الصفحة.

تقوم العديد من مواقع الويب الديناميكية بإنشاء صفحات ويب بسرعة باستخدام لغة برمجة نصية من جانب الخادم مثل PHP أو ASP. ومع ذلك، حتى الصفحات الديناميكية يجب تنسيقها باستخدام HTML. لذلك، غالبًا ما تنشئ لغات البرمجة النصية تعليمات برمجية بتنسيق HTML يتم إرسالها إلى متصفح الويب.

تم تصميم بروتوكول نقل النص التشعبي HTTP للتواصل بين العملاء والخوادم ويعمل كبروتوكول استجابة للطلب.

يمكن أن يكون متصفح الويب هو العميل، ويمكن أن يكون التطبيق الموجود على الكمبيوتر الذي يستضيف موقع الويب هو الخادم.

يرسل العميل (المتصفح) طلب HTTP إلى الخادم، ويعرض الخادم استجابة تحتوي على معلومات حول حالة الطلب وقد تحتوي أيضًا على المحتوى المطلوب.

طريقتان للطلب: GET وPOST

طريقتان شائعتان الاستخدام للاستجابة للطلب بين العميل والخادم هما:

    GET - يطلب البيانات من المورد المحدد؛

    POST - يرسل البيانات المراد معالجتها إلى المورد المحدد.

ترجمة GET وPOST تعني حرفيًا الاستلام والمعالجة اللاحقة.

المزيد عن HTTP

HTTP هو بروتوكول يستخدم لنقل البيانات عبر الإنترنت. وهو جزء من مجموعة بروتوكول الإنترنت ويحدد الأوامر والخدمات المستخدمة لنقل بيانات صفحة الويب.

يستخدم HTTP نموذج الخادم والعميل. يمكن أن يكون العميل جهاز كمبيوتر منزلي أو كمبيوتر محمول أو جهاز محمول. عادةً ما يكون خادم HTTP عبارة عن مضيف ويب يقوم بتشغيل برنامج خادم الويب مثل Apache أو IIS. عندما يصل مستخدم إلى موقع ويب، يرسل المتصفح طلبًا إلى خادم الويب المناسب ويستجيب برمز حالة HTTP. إذا كان عنوان URL صالحًا وتم منح الاتصال، فسيرسل الخادم صفحة الويب والملفات المرتبطة بها إلى المتصفح.

تتضمن رموز حالة HTTP الشائعة ما يلي:

    200 - طلب ناجح (صفحة الويب موجودة)؛

    301 - يتحرك باستمرار (يعيد التوجيه بشكل متكرر إلى عنوان URL جديد)؛

    401 - طلب غير مصرح به (الإذن مطلوب)؛

    500 - خطأ داخلي في الخادم (غالبًا ما يحدث بسبب تكوين خادم غير صحيح).

POST وGET في HTTP

يحدد HTTP أوامر GET وPOST المستخدمة لمعالجة عمليات إرسال النماذج على مواقع الويب. يتم استخدام أمر CONNECT لتسهيل الاتصال الآمن المشفر باستخدام SSL. تحدث اتصالات HTTP المشفرة عبر HTTPS، وهو امتداد لـ HTTP مصمم لنقل البيانات بشكل آمن.

يمكن الوصول إلى عناوين URL التي تبدأ بـ "http://" عبر بروتوكولات نقل النص التشعبي القياسية وتستخدم المنفذ 80 بشكل افتراضي. يمكن الوصول إلى عناوين URL التي تبدأ بـ "https://" عبر اتصال HTTPS آمن وغالبًا ما تستخدم المنفذ 443.

بريد

POST عبارة عن سلسلة من اختبارات النظام التي تجريها أجهزة الكمبيوتر والأجهزة الإلكترونية الأخرى عند تشغيلها. يمكن عرض نتائج الاختبار على الشاشة، أو عرضها عبر مصابيح LED الوامضة، أو ببساطة تسجيلها داخليًا. في أنظمة الكمبيوتر، يتم تنفيذ عملية POST في بداية تسلسل التمهيد. إذا نجحت جميع الاختبارات، فستستمر بقية عملية بدء التشغيل تلقائيًا.

تعمل أنظمة تشغيل أجهزة Mac وWindows على تشغيل POST في كل مرة يتم فيها تشغيل الكمبيوتر أو إعادة تشغيله. يقوم الفحص بفحص الأجهزة والتأكد من أن المعالج وذاكرة الوصول العشوائي وأجهزة التخزين تعمل بشكل صحيح. إذا حدث خطأ أثناء POST، فقد تتوقف عملية بدء التشغيل مؤقتًا أو تتوقف تمامًا، وقد تظهر رسالة على الشاشة.على أجهزة الكمبيوتر، غالبًا ما تظهر أخطاء POST على شاشة معلومات BIOS. وقد تظهر كرموز تشفير مثل "08" أو كرسالة نظام مثل "خطأ في إزاحة ذاكرة النظام". في نظام التشغيل Mac، غالبًا ما تتم الإشارة إلى أخطاء POST من خلال رسم بسيط، مثل رمز مجلد معطل، مما يشير إلى عدم العثور على جهاز التمهيد.

المظاهر الجسدية

في بعض الحالات، قد لا يتم تشغيل شاشة الكمبيوتر حتى قبل ظهور أخطاء POST. إذا حدث ذلك، فقد يتم عرض رموز الخطأ من خلال مصابيح LED الوامضة أو أصوات التنبيه. على سبيل المثال، سيقوم جهاز Apple iMac بتشغيل ثلاث نغمات متتالية، ويتوقف مؤقتًا لمدة خمس ثوانٍ، ثم يكرر النغمات عند اكتشاف وجود ذاكرة وصول عشوائي سيئة أثناء بدء التشغيل. تصدر معظم أجهزة الكمبيوتر أيضًا صوت تنبيه عند اكتشاف أخطاء POST، على الرغم من أن كل شركة مصنعة تستخدم الرموز الخاصة بها.

POST هو مصطلح تقني إلى حد ما يستخدمه فنيو الكمبيوتر فقط بشكل منتظم. ومع ذلك، فهو اختصار جيد لأنه يساعدك على فهم رسائل الخطأ التي قد تظهر على أجهزة الكمبيوتر أو الأجهزة الإلكترونية الأخرى بشكل أفضل. إذا لم يبدأ تشغيل جهاز الكمبيوتر الخاص بك بسبب خطأ POST، فيمكنك استخدام جهاز آخر للعثور على معنى الخطأ وسببه من موقع الشركة المصنعة على الويب. بعد ذلك يمكنك اتخاذ الإجراء المناسب - إزالة وحدة الذاكرة أو إعادة تثبيت بطاقة الفيديو ثم إعادة تشغيل الجهاز.

يحصل

يعد POST أيضًا وسيلة لتمرير متغيرات نموذج HTML من صفحة ويب إلى أخرى دون عرضها في شريط العناوين. الطريقة البديلة هي GET، والتي تضيف قيمًا إلى عنوان URL. توفر طلبات HTTP POST بيانات إضافية من العميل (المتصفح) إلى الخادم في نص الرسالة. في المقابل، تتضمن طلبات GET جميع البيانات المطلوبة في عنوان URL. يمكن للنماذج في HTML استخدام أي طريقة عن طريق تحديد الطريقة = POST أو الطريقة = GET (افتراضي) على العنصر

. تحدد الطريقة المحددة كيفية إرسال بيانات النموذج إلى الخادم. عند استخدام أسلوب GET، يتم ترميز كافة بيانات النموذج في عنوان URL كمعلمات سلسلة استعلام. باستخدام POST، تظهر بيانات النموذج في نص رسالة طلب HTTP.

الاختلافات في عرض النموذج

تطلب طريقة طلب POST من خادم الويب قبول وتخزين البيانات الموجودة في نص رسالة الطلب. يُستخدم غالبًا عند تحميل ملف أو إرسال نموذج ويب مكتمل.

تقوم طريقة طلب HTTP GET باسترداد المعلومات من الخادم. كجزء من طلب GET، قد يتم تمرير بعض البيانات في سلسلة استعلام URL، أو تحديد مصطلحات البحث، أو النطاقات الزمنية، أو المعلومات الأخرى التي تحدد الطلب.

كجزء من طلب POST، يمكن إرسال كمية عشوائية من البيانات من أي نوع إلى الخادم في نص رسالة الطلب. يشير حقل الرأس في طلب POST عادةً إلى نوع وسائط الإنترنت الخاصة بنص الرسالة.

يتمثل الاختلاف الرئيسي بين طلبات GET وPOST في أنها تتوافق مع طلبات HTTP المختلفة كما هو محدد في مواصفات HTTP. تبدأ عملية الإرسال لكلتا الطريقتين بنفس الطريقة: يتم إنشاء مجموعة بيانات النموذج بواسطة المتصفح ثم يتم تشفيرها بالطريقة المحددة بواسطة سمة enctype. بالنسبة إلى METHOD='POST'، يمكن أن تكون سمة enctype متعددة الأجزاء/form-data أو application/x-www-form-urlencoded، بينما بالنسبة إلى METHOD='GET'، يتم تشغيلها فقط عبر application/x-www-form-urlencoded. يتم تعيين بيانات النموذج ثم إرسالها إلى الخادم.

لإرسال نموذج باستخدام METHOD="GET"، يقوم المتصفح بإنشاء عنوان URL عن طريق أخذ قيمة سمة الإجراء وإلحاقها بمجموعة بيانات النموذج، المشفرة باستخدام نوع المحتوى application/x-www-form-urlencoded). يتعامل المتصفح بعد ذلك مع عنوان URL هذا كما لو كان يرتبط برابط (أو كما لو كان المستخدم قد كتب عنوان URL يدويًا). يقوم المتصفح بتقسيم عنوان URL إلى أجزاء والتعرف على المضيف، ثم يرسل طلب GET إلى ذلك المضيف مع بقية عنوان URL كوسيطة. ومن المهم ملاحظة أن هذه العملية تعني أن هذه النماذج تقتصر على رموز ASCII. يجب إيلاء اهتمام خاص لتشفير وفك تشفير الأنواع الأخرى من الأحرف عند تمريرها إلى عنوان URL الخاص بـ ASCII.

يؤدي إرسال نموذج باستخدام METHOD = "POST" إلى إرسال طلب POST باستخدام قيمة سمة الإجراء ورسالة يتم إنشاؤها وفقًا لنوع المحتوى المحدد بواسطة سمة enctype.

بي أتش بي

PHP مدمج في HTML. وهذا يعني أنه يمكن إدراج كود PHP في صفحة HTML. تتم قراءة كود PHP أو تحليله بواسطة الخادم الذي يستضيف الصفحة. عادةً ما يتم إرجاع مخرجات وظائف GET وPOST في PHP على الصفحة كرمز HTML يمكن قراءته بواسطة المتصفح. نظرًا لأن كود PHP يتم تحويله إلى HTML قبل تحميل الصفحة، فلن يتمكن المستخدمون من عرض كود PHP على الصفحة. وهذا يجعل صفحات PHP كافية للوصول إلى قواعد البيانات والمعلومات الآمنة الأخرى.

يتم استعارة الكثير من بناء جملة PHP من لغات أخرى مثل C وJava وPerl. ومع ذلك، PHP لديها عدد من الميزات الفريدة والميزات الخاصة. الغرض من هذه اللغة هو تمكين مطوري الويب من كتابة الصفحات المولدة ديناميكيًا بسرعة وسهولة.

وورد

WordPress هو نظام مجاني لإدارة المحتوى يستخدم لإنشاء مواقع الويب وصيانتها. لقد ساعدته سهولة الاستخدام وميزات التدوين الفريدة في أن يصبح أداة التدوين الأكثر شيوعًا على الإنترنت.

تتيح واجهة WordPress لأي شخص ليس لديه خبرة في تطوير الويب إنشاء موقع ويب ونشره. توفر أدوات التدوين المضمنة طريقة سهلة لتتبع المشاركات الفردية والزوار وتعليقات المستخدمين.

على الرغم من توفر الآلاف من قوالب WordPress والمكونات الإضافية، إلا أن نظام POST GET في WordPress لا يزال يعاني من قيوده. نظرًا لأنها خدمة تعتمد على القوالب، يجب على المستخدم البدء بموقع ويب تم إنشاؤه مسبقًا بدلاً من إنشاء صفحات من الصفر. بالإضافة إلى ذلك، لا توجد إمكانية لإدراج البرامج النصية أو الاحتفاظ بقاعدة بيانات بنفس مستوى التحكم الذي يوفره موقع الويب المخصص.

تسمح أداة POST_GET_ID() للبرامج النصية بمعالجة العنصر لأنه يحتوي على معرف فريد وعند إرساله كنموذج من خلال هذه الطرق، سيتم إرسال القائمة المنسدلة بمعرف فريد مما يسمح للبرنامج النصي بملاحظة المنشور الذي يتم تشغيله. وبدلاً من ذلك، يمكن إرسال متغير مخفي يسمح للبرنامج النصي بمعرفة أي منشور ينتمي إلى العرض.

تهدف هذه المقالة إلى شرح مبادئ نقل البيانات عبر الإنترنت باستخدام طريقتين رئيسيتين: GET وPOST. لقد كتبته كملحق لتعليمات منشئ جدول التحول لأولئك الذين من غير المرجح أن يكونوا مهتمين بالتفاصيل ☺.

انتقل إلى العنوان التالي (هذا للشرح المرئي): http://calendarin.net/calendar.php?year=2016 انتبه إلى شريط عناوين المتصفح: Calendarin.net/calendar.php ?السنة=2016تتم تسمية الملف الرئيسي متبوعًا بعلامة استفهام (؟) ومعلمة "السنة" بالقيمة "2016". لذلك، كل ما يلي علامة الاستفهام هو طلب GET. انه سهل. لتمرير أكثر من معلمة واحدة، يجب فصلها بعلامة العطف (&). مثال: Calendarin.net/calendar.php ?year=2016&display=work-days-and-days-off

لا يزال الملف الرئيسي مسمى، متبوعًا بعلامة استفهام (؟)، ثم معلمة "السنة" بالقيمة "2016"، ثم علامة الضم (&)، ثم معلمة "عرض" بالقيمة "أيام العمل-" وأيام" -off".

يمكن تغيير معلمات GET مباشرة في شريط عنوان المتصفح. على سبيل المثال، تغيير القيمة "2016" إلى "2017" والضغط على المفتاح سينقلك إلى التقويم لعام 2017.

هذا نقل مخفي للبيانات (لا يتغير عنوان الصفحة)؛ أي أنه يمكنك فقط رؤية ما تم نقله باستخدام برنامج (سكربت). على سبيل المثال، في الأداة التالية لحساب الأحرف في النص، يتم إرسال البيانات الأصلية باستخدام طريقة POST: http://usefulonlinetools.com/free/character-counter.php

إذا كان لديك أي أسئلة وتعليقات والبريد الإلكتروني الخاص بي في خدمتكم.

بالإضافة إلى طريقة GET التي ناقشناها في المنشور السابق، هناك طريقة أخرى لإرسال طلب عبر بروتوكول HTTP - طريقة POST. تُستخدم طريقة POST أيضًا في كثير من الأحيان في الممارسة العملية.

إذا كان علينا، من أجل الاتصال بالخادم باستخدام طريقة GET، فقط كتابة طلب في عنوان URL، فإن كل شيء في طريقة POST يعمل وفقًا لمبدأ مختلف.

من أجل تنفيذ هذا النوع من الطلب، نحتاج إلى النقر على الزر الذي يحتوي على سمة النوع = "إرسال"، الموجود على صفحة الويب. يرجى ملاحظة أن هذا الزر موجود في العنصر ، والتي تم تعيين سمة الطريقة للنشر.

خذ بعين الاعتبار كود HTML هذا:

أدخل النص:


إذا قام المستخدم بإدخال بعض النص في حقل النص والنقر على زر "إرسال"، فسيتم إرسال متغير النص إلى الخادم مع قيمة المحتوى الذي أدخله المستخدم.

POST واحصل على الطلبات بكلمات بسيطة

سيتم إرسال هذا المتغير باستخدام طريقة POST.

إذا كتبت هذا في النموذج:

ثم سيتم إرسال البيانات باستخدام طريقة GET.

إذا كانت كمية البيانات التي يمكننا نقلها، في حالة طلب GET، محدودة بطول شريط عنوان المتصفح، ففي حالة طلب POST، لا يوجد مثل هذا القيد، ويمكننا نقل كميات كبيرة المعلومات.

هناك اختلاف آخر بين طريقة POST وطريقة GET وهو أن طريقة POST تخفي جميع المتغيرات التي تمررها وقيمها في نصها (Entity-Body). في حالة طريقة GET، تم تخزينها في سلسلة الطلب (Request-URI).

فيما يلي مثال لطلب تم إجراؤه باستخدام طريقة POST:

بوست / HTTP/1.0\r\n
المضيف: www.site.ru\r\n
المرجع: http://www.site.ru/index.html\r\n
ملف تعريف الارتباط: الدخل=1\r\n
نوع المحتوى: application/x-www-form-urlencoded\r\n
طول المحتوى: 35\r\n
\r\n
تسجيل الدخول=ديما&كلمة المرور=12345

وبالتالي، من خلال نقل البيانات باستخدام طريقة POST، سيكون من الصعب جدًا على المهاجم اعتراضها، لأنه فهي مخفية عن العرض المباشر، لذلك تعتبر طريقة POST لنقل البيانات طريقة أكثر أمانًا.

بالإضافة إلى ذلك، باستخدام طريقة POST، لا يمكنك نقل النص فحسب، بل يمكنك أيضًا نقل بيانات الوسائط المتعددة (الصور والصوت والفيديو). هناك معلمة خاصة لنوع المحتوى تحدد نوع المعلومات التي يجب إرسالها.

وأخيرًا، من أجل استقبال البيانات التي تم إرسالها بهذه الطريقة على الخادم، يتم استخدام متغير POST.

فيما يلي مثال للمعالجة في PHP:

صدى $_POST['نص'];
?>

قررنا في المنشور الأخير أن المتصفح (العميل) يرسل طلبات HTTP إلى الخادم، ويرسل الخادم استجابات HTTP إلى العميل. يتم تنسيق هذه الطلبات والاستجابات وفقًا لقواعد معينة. هناك شيء مثل بناء الجملة، وكيف وفي أي تسلسل ينبغي كتابته. يجب أن يكون هناك هيكل محدد بدقة.

دعونا نلقي نظرة فاحصة على هذه البنية التي يتم من خلالها بناء الطلبات والاستجابات في بروتوكول HTTP.

يتكون طلب HTTP من ثلاثة أجزاء رئيسية تظهر بالترتيب المذكور أدناه. يوجد بين الرؤوس ونص الرسالة سطر فارغ (كفاصل)، وهو يمثل حرف تغذية السطر.

سلسلة فارغة (محدد)

طلبات النشر والحصول، ما الفرق بينهما وأيهما أفضل ولأي غرض؟

نص الرسالة (نص الكيان) - معلمة اختيارية

سلسلة الاستعلام- يحدد طريقة النقل، وعنوان URL الذي سيتم الوصول إليه، وإصدار بروتوكول HTTP.

العناوين- وصف نص الرسائل، ونقل المعلمات المختلفة وغيرها من المعلومات والمعلومات.

جسم الرسالة- هذه هي البيانات نفسها التي يتم إرسالها في الطلب. نص الرسالة هو معلمة اختيارية وقد يكون مفقودًا.

عندما نتلقى طلب استجابة من الخادم، غالبًا ما يكون نص الرسالة هو محتوى صفحة الويب. ولكن، عند تقديم طلبات إلى الخادم، يمكن أيضًا أن يكون موجودًا في بعض الأحيان، على سبيل المثال، عندما ننقل البيانات التي ملأناها في نموذج الملاحظات إلى الخادم.

سننظر في كل عنصر من عناصر الطلب بمزيد من التفصيل في الملاحظات التالية.

دعونا، على سبيل المثال، نفكر في طلب حقيقي واحد للخادم. لقد قمت بتمييز كل جزء من الطلب بلون مختلف: سطر الطلب باللون الأخضر، والعناوين باللون البرتقالي، ونص الرسالة باللون الأزرق.

طلب المتصفح:

المضيف: webgyry.info

ملف تعريف الارتباط: إعدادات wp

الاتصال: البقاء على قيد الحياة

في المثال التالي، نص الرسالة موجود بالفعل.

استجابة الخادم:

نوع المحتوى: نص/أتش تي أم أل؛ مجموعة الأحرف=UTF-8

ترميز النقل: مقسم

الاتصال: البقاء على قيد الحياة

البقاء على قيد الحياة: المهلة = 5

X-Pingback: //webgyry.info/xmlrpc.php

وثيقة بدون عنوان

هذه هي الرسائل المتبادلة بين العميل والخادم عبر HTTP.

بالمناسبة، هل تريد معرفة ما إذا كان هناك أي فائدة في بعض العناصر على موقع الويب الخاص بك باستخدام "أهداف" مقاييس Yandex وGoogle Analytics؟

أزل ما لا يصلح، وأضف ما يصلح، وضاعف إيراداتك.

دورة حول إعداد أهداف Yandex Metrica..

دورة إعداد أهداف Google Analytics..

يرسل عميل HTTP طلبًا إلى الخادم في شكل رسالة طلب بالتنسيق التالي:

  • سلسلة الاستعلام (مطلوب)
  • العنوان (عنصر اختياري)
  • سلسلة فارغة (مطلوب)
  • نص الرسالة (عنصر اختياري)

دعونا ننظر إلى كل عنصر من هذه العناصر على حدة.

سلسلة الاستعلام

يبدأ سطر الطلب برمز مميز للطريقة، متبوعًا بعنوان URI للطلب وإصدار البروتوكول. يتم فصل العناصر عن بعضها البعض بمسافات:

دعونا ننظر إلى هذا العنصر بمزيد من التفصيل.

طريقة الطلب

يحدد هذا العنصر الطريقة التي يجب استدعاؤها على جانب الخادم عند عنوان URI المحدد.

هناك ثماني طرق في HTTP:

  • رأس
    يُستخدم للحصول على الحالة وسلسلة الرأس من الخادم عن طريق URI. لا يغير البيانات.
  • يحصل
    يُستخدم لتلقي البيانات من الخادم على URI المحدد. لا يغير البيانات.
  • بريد
    يستخدم لإرسال البيانات إلى الخادم (مثل معلومات المطور، وما إلى ذلك) باستخدام نماذج HTML.
  • يضع
    يستبدل كافة البيانات السابقة على المورد بالبيانات المحملة الجديدة.
  • يمسح
    يحذف كافة البيانات الحالية على المورد المحدد بواسطة URI.
  • يتصل
    ينشئ اتصال نفق بالخادم على URI المحدد.
  • خيارات
    يصف خصائص الاتصال للمورد المحدد.
  • يتعقب
    يوفر رسالة تحتوي على تتبع إرجاع لموقع المورد المحدد في URI.

طلب URI

URI (معرف الموارد الموحد) هو معرف المورد الذي يتم إرسال الطلب إليه. ما يلي هو تنسيق URI الأكثر استخدامًا:

‘*’ يُستخدم عندما لا يتعلق طلب HTTP بمورد معين، بل بالخادم. يُستخدم فقط عندما لا يلزم تطبيق الطريقة على أحد الموارد. على سبيل المثال،

urlيتم استخدامه عند إجراء طلب HTTP على الوكيل. يُطلب من الوكيل تمرير الطلب من ذاكرة التخزين المؤقت المتاحة وإرجاع الاستجابة. على سبيل المثال:

مسار_مطلق | مصدرالأكثر استخداما.

تعلم كيفية العمل مع طلبات GET وPOST

مطلوب مورد محدد على خادم معين. على سبيل المثال، يريد العميل تلقي مورد من الخادم عبر المنفذ 80. عنوان المورد هو "www.proselyte.net" ويرسل الطلب التالي:

الاستعلام عن حقول الرأس

تسمح حقول الرأس للعميل بتمرير معلومات إضافية حول الطلب ونفسه إلى الخادم. تعمل هذه الحقول كمعدلات الاستعلام.

فيما يلي قائمة بأهم حقول الرأس التي يمكن استخدامها:

  • قبول-محارف
  • قبول الترميز
  • قبول اللغة
  • تفويض
  • يتوقع
  • إذا تطابق
  • إذا تم تعديله منذ ذلك الحين
  • إذا لم يكن هناك تطابق
  • إذا المدى
  • إذا-غير معدلة-منذ ذلك الحين
  • يتراوح
  • المُحيل
  • وكيل المستخدم

إذا أردنا تنفيذ عميلنا وخادم الويب الخاص بنا، فيمكننا إنشاء حقول الرأس الخاصة بنا.

مثال لطلب HTTP

بهذا نختتم دراستنا لطلبات HTTP.
في المقالة التالية سنلقي نظرة على استجابات HTTP.

إحدى الطرق التي يمكنك من خلالها إرسال طلب HTTP إلى الخادم هي باستخدام طريقة GET. هذه الطريقة هي الأكثر شيوعًا وغالبًا ما يتم استخدام الطلبات المقدمة إلى الخادم.

أسهل طريقة لإنشاء طلب GET هي كتابة عنوان URL في شريط العناوين في متصفحك.

سيرسل المتصفح للخادم المعلومات التالية تقريبًا:

الحصول على / HTTP/1.1
المضيف: webgyry.info
وكيل المستخدم: Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0
قبول: نص/html،application/xhtml+xml،application/xml;q=0.9,*/*;q=0.8
لغة القبول: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
قبول الترميز: gzip، انكماش
ملف تعريف الارتباط: إعدادات wp
الاتصال: البقاء على قيد الحياة

يتكون الطلب من جزأين:

1. خط الطلب

2. رؤوس الرسائل

لاحظ أن طلب GET لا يحتوي على نص الرسالة. لكن هذا لا يعني أنه بمساعدتها لا يمكننا نقل أي معلومات إلى الخادم.

الفرق بين طرق GET وPOST

يمكن القيام بذلك باستخدام معلمات GET الخاصة.

لإضافة معلمات GET إلى الطلب، يلزمك إضافة "؟" في نهاية عنوان URL. وبعد ذلك ابدأ بسؤالهم وفق القاعدة التالية:

parameter_name1=parameter_value1¶meter_name2=parameter_value2&…

الفاصل بين المعلمات هو علامة "&".

على سبيل المثال، إذا أردنا تمرير قيمتين إلى الخادم، اسم المستخدم وعمره، فيمكن ذلك من خلال السطر التالي:

http://site.ru/page.php?name=dima&age=27

عند تنفيذ هذا الطلب، تنتهي البيانات في ما يسمى بمتغير البيئة QUERY_STRING، والذي يمكن استرجاعها منه على الخادم باستخدام لغة برمجة الويب من جانب الخادم.

فيما يلي مثال لكيفية القيام بذلك في PHP.

صدى "اسمك:". $_GET["الاسم"] . "
»;
صدى "عمرك:". $_GET["العمر"] . "
»;
?>

يتيح لك إنشاء $_GET["parameter_name"] عرض قيمة المعلمة التي تم تمريرها.

ونتيجة تنفيذ هذا الكود في المتصفح سيظهر ما يلي:

اسمك: ديما
عمرك: 27

نقوم أيضًا بتقديم طلب إلى الخادم باستخدام طريقة GET.