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

[ WalkTh ] الـ HTTP و HTTPS وأجزاء الـ URL

3b0-0d3b0-0d is verified member.

{ || مشرف قسم CTF || }
.:: طاقم المشرفين ::.

السمعة:

f54f3b9acec93f9cdbf2f1811dff1e70
الـ HTTP هو اختصار لـ HyperText Transfer Protocol يعني إنها القاعدة اللي يتم استخدامها لما نفتح موقع ويب. هاي تم تطويرها من قبل Tim Berners-Lee وفريقه في الفترة من 1989 لحد 1991.

راح يكون الحكي عن سبعه مواضيع :

1. الـ HTTP Vs HTTPS

2. الـ URL

3. شرح كيف ترسل طلب على الويب

4. الـ HTTP Methods

5. الـ HTTP Status Codes

6. الـ Headers


7. اسئله 📕
الاسئله من TryHackMe | HTTP in detail

ال HTTP Vs HTTPS


الـ HTTP هي مجموعة القواعد اللي بتستخدم للتواصل مع الخوادم على الإنترنت عشان تبعث وتستقبل البيانات اللي في صفحات الويب، مثل النصوص الـ HTTP والصور والفيديوهات وغيرها.

images
أما HTTPS هاد الإصدار الآمن من HTTP وهو اختصار لـ HyperText Transfer Protocol Secure
البيانات في HTTPS مشفرة، ف بتمنع مش بس الناس من رؤية البيانات اللي بتستقبلها أو تبعتها بس كمان بتعطيك ضمان إنك بتكون مع الخادم الصحيح على الإنترنت ومش مع حد ثاني يعني بإكدلك انه هو نفسه الحقيقي

مثال على ذلك
image
عند فتح صفحه التحدي تجد http
image
اكبس على اشاره القفل
image







ال URL

لما ندخل على موقع ويب، متصفحك بحتاج يرسل طلبات لخادم الويب عشان يجيب لك الصور والصفحات وغيره. قبل هيك لازم تسال حالك كيف المتصفح قدر يوصل للموارد هاي، وهون بيدخل دور الـ URLs.

الـ URL هو ببساطة تعليمات عن كيف توصل لموقع على الإنترنت. الصورة التاليه بتبينلك كيف الـ URLs بشتغل

34ad66d8b90aaaa35f9536d3b152ea97
شرح توضيحي

1. الـ Scheme :
في الـ URL ، هذا الجزء اللي بحدد نوع البروتوكول الذي يتم استخدامه للوصول إلى المورد، مثل HTTP أو HTTPS أو FTP .
مثال: إذا كنت تستخدم HTTP ، بكون الجزء المخصص للبروتوكول كالتالي: //:http .

2. الـ User :
بعض الخدمات بتتطلب مصادقة لتسجيل الدخول. بإمكانك تكتب اسم مستخدم وكلمة السر في الـ URL لتسجيل الدخول.
مثال: إذا كان هناك اسم مستخدم “user123” وكلمة مرور “password456”، يمكنك إضافتها إلى الـ URL بهذا الشكل: @http://user123:password456 .

3. الـ Host :
هذا الجزء يحتوي على اسم النطاق (domain name) أو عنوان IP للخادم الذي بدك توصله.
مثال: لو بدك تتصل بموقع example.com ، سيكون الجزء المخصص للـ Host كالتالي: example.com .

4. الـ Port :
يحدد هذا الجزء المنفذ (port) الذي ستتصل به على الخادم. عادةً ما يكون 80 للاتصال بـ HTTP و443 للاتصال بـ HTTPS ، ولكن يمكن أن يكون مستضافًا على أي منفذ بين 1 و 65535.
مثال: للاتصال بخادم HTTP على المنفذ 8080، ستضيف المنف بالشكل التالي: 8080: .

5. الـ Path :
يحدد هذا الجزء اسم الملف أو الموقع اللي بتحاول توصله على الخادم.
مثال: اذا كنت بدك توصل لصفحة about على موقع example.com ، هكذا يكون example.com/about .

6. الـ Query String :
هذا الجزء بحمل معلومات إضافية يمكن إرسالها إلى المسار المطلوب.
مثال إذا كنت ترغب في الحصول على مقالة معرفة بالرقم 1 من مسار blog
، يمكنك إضافة المعلومات بهذا الشكل: ?id=1 .

7. الـ Fragment :
يُستخدم هذا الجزء للربط بجزء معين على الصفحة المطلوبة.
عادةً ما يتم استخدامه لصفحات طويلة حيث يمكن للمستخدم أن يصل إلى جزء معين مباشرة بمجرد الوصول إلى الصفحة.
مثال: إذا كنت تريد ربط الصفحة بجزء معين يسمى task3 يمكنك إضافتها .

لما تدخل على موقع زي TryHackMe ، الكمبيوتر بيبعث طلب للموقع عشان يظهر الصفحة على شاشتك.


شرح كيف ترسل طلب على الويب 👇

أول اشي لو بدك تبعث طلب بسيط على الإنترنت، بتقدر تستخدم سطر واحد بس، زي GET / HTTP/1.1
. يعني ببساطة هاد طلب إنك تستدعي الصفحة الرئيسية / .

بس كيف تجيب تجربة أوسع وأحلى على الإنترنت؟ لازم تبعث معاك بيانات ثانية اسمها headers .
الـ headers هاي بتحمل معلومات إضافية للموقع اللي بتتواصل معاه.
كود:
GET / HTTP/1.1
Host: tryhackme.com
User-Agent: Mozilla/5.0 Firefox/87.0
Referer: https://tryhackme.com/
شرح 👇

  • السطر الأول: يخبر الخادم بأن هذا الطلب يستخدم طريقة GET لاستدعاء الصفحة الرئيسية / ، ويُشير إلى أنه يستخدم نسخة 1.1 من بروتوكول HTTP .
  • السطر الثاني: يخبر الخادم بأنك تريد فتح موقع TryHackMe .
  • السطر الثالث: يُخبر الخادم بأنك تستخدم متصفح Firefox الإصدار 87 .
  • السطر الرابع: يُخبر الخادم بأنك قادم من صفحة أخرى تُدعى https://tryhackme.com .
  • السطر الخامس: يتضمن سطرًا فارغًا دائمًا في نهاية طلب HTTP لإبلاغ الخادم بأن الطلب قد انتهى.
مثال على الرد:
كود:
HTTP/1.1 200 OK
Server: nginx/1.15.8
Date: Fri, 09 Apr 2021 13:34:03 GMT
Content-Type: text/html
Content-Length: 98

<html>
<head>
    <title>TryHackMe</title>
</head>
<body>
    Welcome To TryHackMe.com
</body>
</html>
الآن دعونا نشرح كل سطر في هذا الرد:

  • السطر الأول: يشير إلى أن الخادم يستخدم نسخة 1.1 من بروتوكول HTTP ، وبعد ذلك يأتي رمز حالة HTTP الذي في هذه الحالة هو OK 200 ، والذي يُخبرنا بأن الطلب تم بنجاح.
  • السطر الثاني: يُخبرنا عن نوع وإصدار برنامج الخادم.
  • السطر الثالث: يُظهر لنا التاريخ والوقت والمنطقة الزمنية الحالية للخادم.
  • السطر الرابع: يُخبر المتصفح بنوع المحتوى الذي سيتم إرساله، مثل صفحات HTML أو صور أو مقاطع فيديو.
  • السطر الخامس: يُخبر المتصفح بمقدار البيانات في الرد، مما يساعدنا على التحقق من عدم وجود بيانات مفقودة.

    اسئله 👇

ال HTTP Methods

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

أكتر Methods بنستخدمهم هما الـ GET والـ POST .

  • الـ GET Request
  • لما تدخل على صفحة وبدك تجيب معلومات من الموقع، زي مثلاً لو دخلت على صفحة جوجل وكتبت كلمة بحث

  • الـ POST Request
    • لما تبعث معلومات للموقع، زي مثلاً لو سجلت في موقع فيه اسمك وباسوردك ( بتستخدمه عشان تبعث بيانات جديدة للموقع)

  • الـ PUT Request
    • لما تعدل معلومات موجودة على الموقع، يعني تحدث معلومه.

  • الـ DELETE Request
    • لما تمسح معلومات أو سجلات من الموقع.
اسئله 👇

image






ال HTTP Status Codes

لما يرد خادم HTTP ، يتضمن السطر الأول دائمًا رمز الحالة الذي يُبلغ العميل بنتيجة طلبه وكيفية التعامل معه بشكل محتمل.

يمكن تقسيم هذه الرموز إلى 5 مجموعات مختلفة

رمز الحالةالوصفتوضيح
100-199رد المعلوماتتُرسل لإخبار العميل بقبول الجزء الأول من طلبه وضرورة متابعة الإرسال. هذه الرموز غير شائعة.
200-299نجاحتُستخدم لإبلاغ العميل بنجاح طلبه.
300-399إعادة توجيهتُستخدم لإعادة توجيه طلب العميل إلى مصدر آخر، سواءً كان ذلك إلى صفحة ويب مختلفة أو موقع ويب مختلف بشكل كامل.
400-499أخطاء العميلتُستخدم لإبلاغ العميل بوجود خطأ في طلبه.
500-599أخطاء الخادمتُحجز للأخطاء التي تحدث على الجانب الخادم وتشير عادة إلى مشكلة كبيرة في معالجة الخادم للطلب.
بعض أمثلة على الرموز الشائعة 👇
رمز الحالةالوصف
200تم إكمال الطلب بنجاح.
201تم إنشاء مورد جديد (على سبيل المثال، مستخدم جديد أو منشور في المدونة).
301إعادة توجيه دائمة إلى صفحة جديدة أو إخطار محركات البحث بأن الصفحة انتقلت إلى مكان آخر.
302إعادة توجيه مؤقتة، تشير إلى أن التغيير مؤقت وقد يتغير مرة أخرى في المستقبل القريب.
400طلب سيء، يُبلغ المتصفح بأن هناك شيء خاطئ أو ناقص في طلبه.
401غير مصرّح لك بعرض هذا المورد حتى تقوم بالتوثيق في تطبيق الويب، عادة باستخدام اسم مستخدم وكلمة مرور.
403ليس لديك إذن لعرض هذا المورد، سواء كنت قد قمت بتسجيل الدخول أم لا.
405الطلب غير مسموح به بواسطة المورد المستهدف. على سبيل المثال، إذا قمت بإرسال طلب GET إلى المورد create-account/ عندما كان يتوقع الخادم وجود طلب POST بدلاً منه.
404الصفحة أو المورد الذي طلبته غير موجود.
500خطأ في الخدمة الداخلية، يشير إلى أن الخادم واجه مشكلة لا يعرف كيفية التعامل معها بشكل صحيح.
اسئله 👇
image







الـ Headers

يعني معلومات إضافية بتقدر تبعثها للموقع اللي بتفتحه على الإنترنت.

المعلومات هاي مش مهمة جداً، بس لو ما بعثتها، الموقع ممكن يفهم غلط وممكن تشوف الصفحة مش بالشكل اللي أنت بدك اياه .

*
بالنسبة للمعلومات اللي بتنبعث من الكمبيوتر تاعك للموقع هي 👇
  1. الـ Host : بحكي للموقع أنت بدك تشوف أي صفحة من الموقع، لأن بعض المواقع بكون فيها صفحات كثير ف لازم تحدد أي صفحة بدك اياها .
  2. الـ User-Agent : بحكي للموقع نوع متصفحك وإصداره عشان الموقع يعرف يعرض الصفحة بالشكل الصحيح على متصفحك.
  3. الـ Content-Length : بحكي للموقع كم البيانات اللي بتبعثها ف طلبك على الموقع، عشان الموقع يعرف يستقبلها صح.
  4. الـ Accept-Encoding : بحكي للموقع كيف بتقدر تضغط البيانات عشان تتنقل أسرع على الإنترنت.
  5. الـ Cookie : هاي بيانات بتبعثها للموقع عشان يتذكر معلومات عنك، زي الدخول التلقائي بالمواقع ومعلومات شخصية ثانية.
*
بعد ما تفتح الموقع وتبعث الطلب، الموقع بيبعثلك معلومات ثانية زي 👇
  1. الـ Set-Cookie : بتحفظ بيانات عنك عشان لما ترجع للموقع في كل مرة بتزوره.
  2. الـ Cache-Control : بيخبرك كم هو طول الوقت اللي ممكن تحتفظ بالصفحة عندك قبل ما تعيد تحميلها من جديد.
  3. الـ Content-Type : بيخبرك نوع المحتوى اللي الموقع ببعثه، زي نص، صور، فيديو، وغيره.
  4. الـ Content-Encoding : بيخبرك كيف ظغطوا البيانات عشان ينقلوها بسرعة أكبر على الإنترنت.

اسئله 👇

هكذا شكل الطلب بدون اي اضافه👇
image

  • السؤال الاول Make a GET request to /room
نضيف اخر الرابط المطلوب كما بالصورة 👇
image

يظهر العلم


  • السؤال الثاني Make a GET request to /blog and using the gear icon set the id parameter to 1 in the URL field
image
ملاحظه : يمكنك تغير ال id عن طريق الظغط على زر الاعدادات ثم وضع كما بالصوره 👇
image

  • السؤال الثالث Make a DELETE request to /user/1
image

  • السؤال الرابع Make a PUT request to /user/2 with the username parameter set to admin
image
ملاحظه : يمكنك وضع الاسم عن طريق الظغط على زر الاعدادات ثم وضع كما بالصوره

  • السؤال الخامس POST the username of thm and a password of letmein to /login
image
 

المرفقات

التعديل الأخير:
الشرح 🔥
و المنشور 🔥
و صاحب المنشور 🔥🔥🔥

ما شاء الله عبود
 
التعديل الأخير:
شكرا لجهودك 😊 ياريت تثبت على طريقة الشرح دي دايما
 
التعديل الأخير:
سلمت عبوود
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى