HTTP Request

                                 طلب HTTP

طلبات HTTP هي الرسائل التي يرسلها العميل أو المستخدم لبدء إجراء على الخادم.

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

بناء الجملة

  1.   
  2. Request       = Request-Line                
  3.                 *(( general-header        
  4.                 | request-header           
  5.                 | entity-header ) CRLF)    
  6.                  CRLF  
  7.                 [ message-body ]

خط الطلب

يبدأ سطر الطلب برمز مميز للطريقة ، متبوعًا بـ Request-URI ، وإصدار البروتوكول ، وينتهي بـ CRLF. باستخدام أحرف SP ، يتم فصل العناصر.

بناء الجملة

  1.   Request-Line   = Method SP Request-URI SP HTTP-Version CRLF

1) الطريقة

يتم استخدام الرمز المميز للطريقة للإشارة إلى الطريقة التي تم إجراؤها على المورد المحدد بواسطة Request-URI. الطريقة حساسة لحالة الأحرف.

بناء الجملة

  1. Method = "OPTIONS"                  
  2.          | "GET"                      
  3.          | "HEAD"                     
  4.          | "POST"                    
  5.          | "PUT"                     
  6.          | "DELETE"                  
  7.          | "TRACE"                   
  8.          | "CONNECT"                  
  9.          | extension-method  
  10.        extension-method = token

يُسمح للمورد بقائمة من الأساليب ويمكن تحديد تلك الأساليب في حقل السماح بالرأس. يقوم رمز إرجاع الاستجابة دائمًا بإعلام العميل بما إذا كان الأسلوب مسموحًا به حاليًا على أحد الموارد. نظرًا لأن مجموعة الطرق المسموح بها يمكن تغييرها ديناميكيًا.

الطريقة والوصف:

انا حصلت

يسترد هذا الأسلوب المعلومات من الخادم المحدد باستخدام URI محدد. يمكن طلب GET استرداد البيانات. لا يمكن تطبيق تأثيرات أخرى على البيانات.

ب) الرأس

طريقة HEAD هي نفس طريقة GET. يتم استخدامه لنقل سطر الحالة وقسم الرأس فقط.

ثالثا) البريد

يرسل طلب POST البيانات إلى الخادم. على سبيل المثال ، تحميل الملف ، ومعلومات العميل ، وما إلى ذلك باستخدام نماذج HTML.

رابعا) ضع

يتم استخدام طريقة PUT لاستبدال جميع التمثيلات الحالية للمورد الهدف بالمحتوى الذي تم تحميله.

ت) حذف

يتم استخدام طريقة DELETE لإزالة كافة التمثيلات الحالية للمورد الهدف ، والتي يتم تقديمها بواسطة URI.

السادس) الاتصال

يتم استخدام طريقة CONNECT لإنشاء نفق إلى الخادم ، والذي يتم تحديده بواسطة URI معين.

2) Return-URI

Request-URI هو معرف موارد موحد. يتم استخدامه لتحديد المورد الذي سيتم تطبيق الطلب بناءً عليه.

بناء الجملة

  1.  Request-URI = "*" | absoluteURI | abs_path | authority

بناءً على طبيعة الطلب ، تعتمد هذه الخيارات الأربعة لـ Request-URI.

أ) تُستخدم علامة النجمة "*" لإظهار أن الطلب لا ينطبق على مورد معين ، ولكنه ينطبق على الخادم نفسه. يُسمح به فقط عندما لا تنطبق الطريقة المستخدمة بالضرورة على أحد الموارد.

مثال

خيارات * HTTP / 1.1

ب) يتم استخدام نموذج UURI المطلق فقط عندما يتم تقديم الطلب إلى وكيل. يتم استخدام الوكيل المطلوب لإعادة توجيه الطلب وإرجاع الاستجابة.

مثال

احصل على https://www.cyberelliot/WWW/TheProject.html HTTP / 1.1

ج) لا يمكن أن يكون المسار المطلق فارغًا. إذا لم يكن أي شيء موجودًا في URI الأصلي ، فيجب تقديمه كـ "/".

د) يتم استخدام نموذج الاستناد فقط بواسطة طريقة CONNECT.

المورد المحدد بالطلب (The Resource Identified by a Request)

باستخدام فحص Request-URI وحقل Host header ، يمكننا تحديد المورد المحدد بواسطة طلب الإنترنت.

يجب أن يستخدم خادم الأصل القواعد التالية لتحديد المورد المطلوب في طلب HTTP / 1.1 إذا كان الخادم الأصلي لا يفرق بناءً على المضيف المطلوب.

  1. سيكون المضيف جزءًا من Request-URI إذا كان Request-URI هو URI مطلق.
  2. سيتم تحديد المضيف من خلال قيمة حقل رأس المضيف إذا لم يكن عنوان URI للطلب مطلقًا ، وكان الطلب يتضمن حقل رأس للمضيف.
  3. يجب أن تكون الاستجابة رسالة خطأ 400 (طلب غير صالح) إذا لم يكن المضيف كما هو محدد بواسطة القاعدة 1 أو 2 مضيفًا صالحًا على الخادم.

طلب حقول الرأس (Request Header Fields)

يتم استخدام حقول عنوان الطلب للسماح للعميل بتمرير معلومات إضافية إلى الخادم مثل الطلب والعميل نفسه. تعمل حقول رأس الطلب كمعدِّلات للطلب ، مع دلالات مكافئة للمعلمات في استدعاء أسلوب لغة البرمجة.

بناء الجملة

  1. request-header = Accept                     
  2.                       | Accept-Charset            
  3.                       | Accept-Encoding            
  4.                       | Accept-Language            
  5.                       | Authorization              
  6.                       | Expect                    
  7.                       | From                       
  8.                       | Host                      
  9.                       | If-Match                   
  10.                       | If-Modified-Since        
  11.                       | If-None-Match             
  12.                       | If-Range                
  13.                       | If-Unmodified-Since       
  14.                       | Max-Forwards              
  15.                       | Proxy-Authorization       
  16.                       | Range                     
  17.                       | Refer                   
  18.                       | TE                        
  19.                       | User-Agent

لا يمكن تمديد اسم حقل عنوان الطلب بشكل موثوق إلا بالاقتران مع تغيير في إصدار البروتوكول.

إرسال تعليق

أحدث أقدم

نموذج الاتصال