أساليب الطلبات HTML

ما هو HTTP؟

بروتوكول نقل النصوص العنكبوتي (Hypertext Transfer Protocol، اختصار HTTP) مصمم لتمكين التواصل بين العميل والخادم.

يخدم HTTP كبروتوكول الطلب-الرد بين العميل والخادم.

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

أساليب HTTP

  • GET
  • POST
  • PUT
  • HEAD
  • DELETE
  • PATCH
  • OPTIONS

أكثر الطرق شيوعًا هما: GET و POST.

طريقة GET

GET يستخدم لطلب بيانات من المصدر المحدد.

GET هي أكثر طرق HTTP شيوعًا.

لاحظ أن النص المكتوب (اسم/قيمة) يتم إرساله في URL طلب GET:

/test/demo_form.php?name1=value1&name2=value2

بعض الملاحظات الأخرى حول طلبات GET:

  • يمكن تخزين طلبات GET
  • يتم الاحتفاظ بطلبات GET في سجل التصفح للمستخدم
  • يمكن جمع طلب GET كعلامة مرجعية
  • لا يجب استخدام طلب GET لمعالجة بيانات حساسة
  • يوجد تحديد للطول في طلب GET
  • يستخدم طلب GET فقط لاسترداد البيانات (بدون تعديل)

طريقة POST

يستخدم POST لإرسال البيانات إلى الخادم لإنشاء/تحديث المورد.

تخزن البيانات التي يتم إرسالها إلى الخادم من خلال جسم الطلب في الطلب HTTP:

POST /test/demo_form.php HTTP/1.1
Host: codew3c.com
name1=value1&name2=value2

POST هي أكثر طرق HTTP شيوعًا.

بعض الملاحظات الأخرى حول طلبات POST:

  • لا يتم تخزين طلبات POST
  • لا يتم الاحتفاظ بطلبات POST في سجل التصفح للمستخدم
  • لا يمكن جمع POST كعلامة مرجعية
  • لا يوجد طلب لطول البيانات في طلب POST

طريقة PUT

يستخدم PUT لإرسال البيانات إلى الخادم لإنشاء/تحديث المورد.

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

طريقة HEAD

HEAD مشابه لGET تقريبًا، ولكنه لا يحتوي على جسم الرد.

بعبارة أخرى، إذا كان GET /users يعيد قائمة المستخدمين، فإن HEAD /users سيقوم بنفس الطلب، لكنه لن يعيد قائمة المستخدمين.

يكون طلب HEAD مفيدًا جدًا لفحص محتوى الطلب قبل إرسال طلب GET في الواقع (على سبيل المثال، قبل تنزيل ملف كبير أو محتوى الرد).

طريقة DELETE

يحذف طريقة DELETE المورد المحدد.

طريقة OPTIONS

يصف طريقة OPTIONS خيارات التواصل للمورد المستهدف.

مقارنة GET و POST

يقارن الجدول أدناه بين طريقتين من HTTP: GET و POST.

  GET POST
زر السابق/التحديث مستحسن سيتم تقديم البيانات مرة أخرى (يجب أن يخبر المستخدم المتصفح بأن البيانات سيتم تقديمها مرة أخرى).
علامة مرجعية يمكن جمعه كعلامة مرجعية لا يمكن جمعه كعلامة مرجعية
التخزين يمكن التخزين لا يمكن التخزين
نوع الترميز application/x-www-form-urlencoded application/x-www-form-urlencoded أو multipart/form-data. يستخدم الترميز المتعدد للبيانات الثنائية.
التاريخ تبقى المعلمات محفوظة في تاريخ المتصفح. المعلمات لن تُحفظ في تاريخ المتصفح.
تحديد طول البيانات نعم. عند إرسال البيانات، يضيف طريقة GET البيانات إلى URL؛ طول URL محدد (أقصى طول هو 2048 حرف). ليس هناك تحديد.
تحديد نوع البيانات يُسمح فقط بالحروف ASCII. ليس هناك تحديد. يسمح أيضًا بالبيانات الثنائية.
الأمان

من حيث الأمان، GET أقل أمانًا مقارنة بPOST لأن البيانات التي يتم إرسالها هي جزء من URL.

لا تستخدم أبدًا GET عند إرسال كلمات المرور أو معلومات حساسة أخرى!

POST أكثر أمانًا من GET لأن المعلمات لن تُحفظ في تاريخ المتصفح أو سجلات خادم الويب.
الرؤية البيانات مرئية للجميع في URL. البيانات لن تظهر في URL.