Mohamed Elsayed

ع ناصية | مطور ويب متخصص في بلوجر واقدم هنا خلاصة تجربتي في التعلم

بسم الله الرحمن الرحيم

اخباركم أيه ياشباب ؟ ..   يارب تكونوا بخير وفي افضل حال

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

بعد ماتعرفنا في الجزء الاول على بروتوكول HTTP وبعض المفاهيم المهمة في المجال بشكل مبسط
موعدنا النهاردة مع الجزء الثاني من الدورة, واللي هانتعرف من خلاله على أكواد البايلود

  • طريقة كتابة البايلود بنفسك هايكون موضوع #الجزء_الثالث ان شاء الله
    بالنسبة للناس اللي عايزين يتعلموا بنفسهم او يعرفوا مصدر الدورة
    ان شاء الله هاكتبلكم الرابط  في اخر الموضوع
     smile

نبدأ بأسم الله أولا
وثانيا  بشرح أكواد البايلود
ولو أردنا الدقة يبقى شرح لأوامر طلب بروتوكول HTTP
ولكن بحب أقول  أكواد البايلود علشان بشرح بايلود النت المجاني ولأنه اللفظ الشائع في مجالنا

هنبدأ مع بعض واحده واحدة
دول أكواد البايلود الرئيسية او مايعرف بــ Request Line

GET، HEAD، POST، OPTIONS، PUT، DELETE، TRACE

بالنسبة لأكواد الطلب الفرعية او مايعرف بــ Request headers
هاشرحهم في اخر الموضوع

 نبدأ بكود االــ CONNECT
الكود ده كل دورة في البايلود انه بيعمل اتصال بينك وبين جهاز بعيد وفي الغالب بيستخدم في الاتصال بحساب الــ SSH

وده الشكل الاساسي للكود

[CONNECT [host_port] [protocol

الكود بيتكون من جزئين

[host_port]

وده إشارة للبروتوكول لطلب هوست + بورت حساب الــ SSH
اللي كتبته مسبقا في البرنامج , ولو البرنامج المستخدم مش بيدعم كتابة الهوست زي برنامج [PSN tunnel]
في الحالة دي بنكتب الهوست + البورت الخاص بحساب الــSSH مكان الــ[host_port] 

وده مثال على ذلك

[CONNECT nl.serverip.co:443 [protocol

اظن الجزء ده من الكود تمام

الجزء الثاني من الكود هو

[protocol]

البروتوكول هو الجزء الثاني من الكود , والكود ده إشارة للبرنامج لطلب استخدام بروتوكول  HTTP/1.0
فلوا عايز تغيره لإصدار HTTP/1.1  هاتحذف الــ [protocol]
وتكتب مكانها HTTP/1.1

مثال :  CONNECT [host_port] HTTP/1.1

اختصارات الكود

  • [netData]

  • [raw]

دول اختصار لــ [CONNECT [host_port] [protocol

  • [real_raw]

  • [realData]

ودول اختصار للكود مع غلق الطلب بكودين CRLF

[CONNECT [host_port] [protocol][crlf][crlf

اظن الكود ده تمام

بما اني اتكلمت عن كود [crlf]
يبقى لازم أوضحة

بكل بساطه الكود ده ليه وظيفتين

  1. وهي بعد إنتهائك من كتابة كود الطلب بتحتاج تقفله علشان البروتوكول يبعته للسيرفر وعلشان يتقفل هاتحتاج كودين [crlf]

  2. الوظيفة الثانية وهي اخذ سطر لكتابة طلب جديد وفي الحالة دي هانستخدم كود واحد [crlf]

    ملاحظة هامة:لايشترط في بعض البرامج كتابة كودين crlf لغلق كود الطلب او حتى كتابة الكود بصيغتة الأصليهلأن بعض المبرمجين يضعوا أختصار خاص بهم للكود وذلك للعلم


أهم 

اختصارات كود crlf

  • r/n

  • #13#10

  • [cr] [lf]

  • [lfcr]

  • [crlf*2]

طبعا رقم 2 بيدي أمر للبرنامج بكتابة كودين [crlf] وطبعا ممكن تغير الرقم على حسب احتياجك للكود

  • ندخل على باقي الأكواد

GET، HEAD، POST، OPTIONS، PUT، DELETE، TRACE

وقبل البداية حابب انوه  ان كل كود طلب وليه صيغة معينة في الكتابة ولكن انا هاستخدم الصيغه المدعومة في معظم برامج الــTUNNEL المستخدمة في النت المجاني علشانالبايلود يشتغل من غير مشاكل

  • اول كود هانبدأ بيه وهو كود الــGET

وظيفة الكود : 
بكل بساطة بـيستخدم لطلب جلب أو عرض موقع معين من السيرفر لعرضة على المتصفح
والكود ده بيدعم تحميل الملفات من السيرفر  

مثال : عايز ادخل على المنتدى يبقى رسالة الطلب اللي هابعتها للسيرفر هاتكون بالشكل ده

[GEThttps://tqnyplus.blogspot.com/HTTP/1.1[crlf]Host:https://tqnyplus.blogspot.com[crlf][crlf

لو تلاحظوا أني فاصل البروتوكول عن الهوست بكود CRLF واحد
وقافل الطلب بكودين CRLF
وممكن اكتب مكان الكودين الأختصار الجميل ده
[crlf*2]

كدا كود الطلب اتقفل برضه بس بصيغة الأختصار وده مفيد جدا للناس اللي بتكتب البايلود بنفسها من غير الاستعانة بالبرامج

  • كود الــ HEAD

وده وظيفتة مشابهة لوظيفة الــGET بس ده مش بيطلب عرض الموقع ولا تحميل الملف من السيرفر مثل كود الجيت
ولكن بيطلب معلومات  الهوست من السيرفر فقط
وده بيستخدم لطلب معلومات عن الهوست من غير ماتدخل علية
هافترض اني  عايز أعرف معلومات عن المنتدى من غير ما أدخل علية في الحالة دي هاستخدم كود الــ HEAD

والمعلومات زي مثلا لو عايز أعرف أخر تحديث للمنتدى على السيرفر او إذا كان نشط ام غير نشط  والمثال ده على سبيل التوضيح
ومن مميزات الكود انه أمن على السيرفر والمستخدم كذلك

  • كود الــPOST

وده بيستخدم  لإضافة البيانات للسيرفر
 مثال :

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

  • كود الــ PUTوده بيستخدم لطلب تخزين بيانات على السيرفريعني لو عايز أرسل ملف في كود الطلب بتاعي لسيرفر المنتدىهاستخدم الكود دة

والكود بيستخدم في مواقع الرفع

وطبعا الكود غير أمن
علشان كدا بـيـبقى مقفول في معظم السيرفرات العادية لتجنب أرسال الملفات الضاره للسيرفر

  • كود الــ DELETEوده واضح من اسمة انه مخصص للحذف وكل دورة انه بيحذف الملف من على السيرفروطبعا معظم السيرفرات بتحجبهلانة ممكن يستغل في الهجوم علىالسيرفر بغرضالتشويش علية او حتى لحجب خدماته وخصوصا انه كود سهل استخدامه

  • كود الــ OPTIONS

 وظيفة الكود ده أنه بيطلب من السيرفر عرض معلومات عن الخيارات والمميزات المسموح عرضها من السيرفر عن هوست معين

مثال : [OPTIONS  https://tqnyplus.blogspot.com/HTTP/1.1[crlf]Host:https://tqnyplus.blogspot.com[crlf][crlf
  • كود الـــ TRACE

وظيفتة هي معرفة عدد مرات الطلبات اللي بعتها للسيرفر
تقدر تقول بيسترجع الطلبات اللي طلبتها من السيرفر لعرضها ليك 

  • الأكواد الفرعية [Header]

    Online Host , Keep Alive , Forwaed Host , User Agent , Reverse Proxy

 

  • كود Keep Alive

وبيتكتب بالشكل ده 

Connection: keep-alive
او [cal]

وده بيستخدم للكشف عن الهوست كل فتره هل هو على اتصال مستمر بالسيرفر ام لا
وبنستخدمه في رسالة كود الطلب دلالة على ان الهوست على اتصال مستمر بالسيرفر
وفي رسالة الإستجابة بيظهرلك وانت بتفحص الهوست
مثال على رسالة الاستجابة لو انا بفحص هوست مجاني مثلا 

 GEThttps://tqnyplus.blogspot.com
 HTTP/1.1 200 OK
 Connection: keep-alive

وطبعا أخر سطر معناه ان الهوست على اتصال مستمر بالسيرفر يعني بالبلدي لسه عايش biggrin2" />

  • كودReverse Proxy

وده البروكسي العكسي اظن غني عن التعريف  smile

  • كود User Agent

ودة كل دورة هو عرض معلومات عن المتصفح بتاعك للسيرفر
المعلومات حول اصدار ونوع المتصفح 
وبيتكتب بالشكل ده  

[User Agent :[ua
او:  [ua]

وباقي الأكواد هكمل شرحها في الجزء الثالث ان شاء الله
و ده المصدر اللي اتعلمت منه كل حاجه تخص بروتوكول HTTP وأوامرة
https://tools.ietf.org/html/rfc2616

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

اهلاً و مرحباً بك في موقعنا
ادعمنا بالأشتراك في القناة وانضم الينا