ما هو الفرق بين HTTP و HTTPS ؟

ما هو الفرق بين HTTP و HTTPS ؟

شارك هذا المقال:



ما الفرق بين ال HTTP و ال HTTPS وماذا يفعلان وهل من الضرورة الانتباه للفرق بينهما ؟ بينما أنت تتصفح الانترنت فجأة يظهر لك الموقع رسالة تقول أن الموقع غير آمن و عليك عدم ادخال اي بيانات حساسة (كلمة مرور, بريد الكتروني, بيانات بنكية ... الخ) على هذا الموقع, ما يحدث فعلياً هو انك دخلت على موقع يعمل ب بروتوكول HTTP وليس HTTPS, و لايعني ذلك دائماً أن الموقع خطير أو احتيالي كما يخيل للبعض و لكن بدون شك يوجد مشكلة هنا, سنتعرف في هذا المقال على هذه المشكلة و حلها, و يمكن اختصار المشكلة بكلمة واحدة "التشفير". و قبل أن نبدأ في الخوض في التفاصيل, اليك الانفوغرافيك التالي من موقع INFOSECTRAIN لاعطائك فكرة عامة عن أهمية HTTPS HTTP HTTPS INFOGRAPHIC

ماذا نعني ب HTTP و HTTPS ؟

HTTPS هو HTTP مع التشفير. الاختلاف الوحيد بين البروتوكولين هو أن HTTPS يستخدم TLS (SSL) لتشفير طلبات واستجابات HTTP العادية. و لذلك يعد HTTPS أكثر أمانًا من HTTP. كي تتأكد من أن الموقع الذي تتصفحه يعمل ببروتوكول HTTPS كل ما عليك فعله هو النظر الى الرابط (عنوان URL). للتوضيح, اليك المثالين التاليين: https://example.com http://example.com كما هو واضح في عناوين URL السابقة, في حال وجود https في الرابط فهذا يعني ان الموقع يستخدم البروتوكول الآمن, اما الموقع الذي يبدأ عنوان URL ب http فهو موقع يستخدم بروتوكول http بدون تشفير و يفضل الحذر منه و عدم ادخال بيانات هامة او شخصية.

ما هو بروتوكول HTTP ؟

http not secure يرمز HTTP الى عبارة Hyper Text Transfer Protocol او بالعربية: بروتوكول نقل النص التشعبي, و هو البروتوكول المسؤول عن نقل البيانات على شبكة الانترنت, يقوم هذا البروتوكول بنقل جميع أنواع البيانات على الشبكة (ملفات لغة Html , صور و فيديوهات, طلبات ال API ... الخ) , يوجد نوعان من طلبات HTTP, و هم الطلبات و الاستجابات.

ما الفرق بين الطلبات و الاستجابات في بروتوكول HTTP ؟

في جميع مواقع الانترنت الحديثة لا بد من وجود تفاعل من المستخدم مع الموقع, لتوضيح نقطة الطلبات و الاستجابات سنقوم باخذ مثال بسيط , و ليكن نموذج اتصل بنا Contact us form. من الطبيعي ان يقوم مطور ويب ببناء نموذج Form و يضع فيه بعض حقول الادخال مثل الاسم, رقم الهاتف, البريد الإلكتروني, الرسالة, و من ثم سيقوم المستخدم بملئ الحقول و ارسال الرسالة الى الموقع, خلال هذه العملية حصل عدة طلبات تم التعامل معها ببروتوكول HTTP , لنستعرضها معاً:
1- طلب اظهار الصفحة GET Request

GET /contact.html HTTP/1.1
Host: www.example.com

يسمى هذا الطلب ب GET REQUEST و يقوم ببساطة بطلب ملف ال html الذي يعرض الصفحة التي تحتوي على نموذج اتصل بنا Contact us form, حصل هذا الطلب عندما دخل المستخدم الى عنوان http://www.example.com/contact.html و نتيجة الطلب كانت ملف html محفوظ على السيرفر باسم contact.html
2- طلب ارسال رسالة POST Request

POST /contact.php HTTP/1.1
Host: www.example.com

أما الطلب الثاني فحصل عندما قام المستخدم بملئ البيانات و الضغظ على ارسال, عندما ضغط المستخدم على ارسال تم ارسال طلب من نوع POST الى السيرفر لمعالجته و من ثم ارسال الرسالة. بالتأكيد, تم تبسيط المثال السابق الى أبعد الحدود لتوضيح فكرة الطلبات و الاستجابات فقط يهدف المثال السابق الى توضيح فكرة بروتوكول HTTP و أيضاً التأكيد على اننا نستخدمه بشكل يومي و عند دخولنا لأي موقع على الانترنت, في الواقع انت الآن تقرأ هذا المقال لان المتصفح الخاص بك قام بارسال طلب GET الى سيرفر نقرة, و قام سيرفر نقرة بمعالجة الطلب و اختيار المقال المطلوب من قاعدة البيانات و عرضه لك!

ما هي أهمية بروتوكول HTTPS ؟

تكمن أهمية بروتوكول HTTPS في طريقة ارسال و استقبال البيانات من و الى السيرفر, في حين أن بروتوكول HTTP يعمل بشكل سليم في عرض و نقل البيانات, لكنه يفتقر لحماية هذه البيانات اثناء انتقالها من و الى السيرفر, و هنا يأتي دور بروتوكول HTTPS. HTTP VS HTTPS يقوم بروتوكول HTTPS ببساطة بتشفير هذه البيانات أثناء نقلها من و الى السيرفر, فعلى سبيل المثال لو قمت بادخال كلمة مرور حسابك و لتكن 123456789 , في حال نقلها عن طريق HTTP ستظهر خلال التواصل بين السيرفر و المتصفح كما ادخلتها تماماً بدون اي تشفير او حماية, و بالتأكيد سيتمكن اي مخترق Hacker من استعراض كلمة مرورك و معرفتها بدون اي صعوبات, لكن عندما يتم نقلها ببروتوكول HTTPS يتم تشفير البيانات و تحويلها لصيغة غير مفهومة للانسان, و قد تكون على شكل نص عشوائي و سلسة من الرموز و الارقام , فحتى لو قام اي مخترق باعتراض الطلب و معرفة محتواه, لن يستطيع الاستفادة منه بسهولة و ربما لن يستطيع الاستفادة منه أبداً. فكما هو موضح في المقال, يعزز بروتوكول HTTPS الأمان الرقمي على الويب و يحمي بيانات المستخدمين بأفضل الطرق. ولكن, هل الأمر فعلاً بتلك الأهمية؟ في الواقع, نعم. سواء كنت مطور مواقع او مستخدم تقوم بتصفح المواقع على الانترنت عليك التأكد دائماً من استخدام بروتوكول HTTPS, اليك بعض الاسباب:
1- حماية البيانات الشخصية كمستخدم او مطور مواقع, بيانات المستخدمين هي العملة الرائجة على الانترنت, استخدامك لبروتوكول http قد يعرض بياناتك الشخصية (اسمك, بريدك الالكتروني, رقم الهاتف) للخطر, هل تتسائل لماذا يصلك الكثير من الايميلات الغريبة أو الاحتيالية؟ استخدام بروتوكول http هو أحد الاسباب التي تؤدي الى تسريب ايميلك الى الشبكة و بيعها.
2- التعامل مع شركات / مقدمي خدمة في حال قمت باستخدام بروتوكول http في موقعك, لن تتمكن من التعامل مع الكثير من مقدمي الخدمة المهمين لأي موقع على الانترنت, و من أهم الأمثلة لن تتمكن من اضافة ميزة "تسجيل الدخول باستخدام فيسبوك" الى موقعك مثلاً.
3- ظهور موقعك على نتائج بحث Google, Bing يتم حساب نسبة ظهور موقعك في النتائج الاولى في محركات البحث اعتماداً على عوامل كثيرة منها جودة المحتوى و ارتباطه بكلمة البحث و غيرها, و من أحد هذه العوامل هو البروتوكول الذي تستخدمه لنقل البيانات, فان كنت تستخدم بروتوكول http تأكد من تطويره الى https في اقرب فرصة لزيادة احتمالية ظهور موقعك في أولى نتائج البحث

كيف يقوم بروتوكول HTTPS بتشفير البيانات؟

يستخدم بروتوكول HTTPS تقنية TLS في التشفير, و ترمز TLS الى Transport Layer Security أو بالعربية: تأمين طبقة النقل, يتم التشفير عن طريق مفاتيح التشفير Public Key & Private Key. Public Key - المفتاح العام يتم مشاركة المفتاح العام مع أجهزة العميل (المتصفح الخاص بك) عبر شهادة SSL الخاصة بالسيرفر , بمعني آخر المفتاح العام متوفر لجميع المستخدمين و ليس للسيرفر فقط. Private Key - المفتاح الخاص المفتاح الخاص يتوفر على السيرفر فقط, و يتم الربط بين المفتاح العام و الخاص عند دخولك الى الموقع لأول مرة. Session Keys - مفاتيح الجلسة بعد ان يقوم المتصفح الخاص بك بارسال طلب الى السيرفر, يتم تكوين "مفاتيح جلسة" لاستخدامها في باقي الطلبات التي تتم بين المتصفح الخاص بك و السيرفر, و يتم تشفير البيانات عبر هذه المفاتيح. لمعرفة المزيد عن كيف يتم التشفير باستخدام المفاتيح, اليك هذا المقال من CloudFlare : What is Encryption

كيف استخدم HTTPS في موقعي؟

لاستخدام بروتوكول HTTPS في موقعك الخاص , ستحتاج لشراء شهادة SSL او الحصول على شهادة مجانية و تنصيبها على السيرفر.



ما رأيك في هذا المقال؟

كيف تقييم نوعية المحتوى في نقرة؟

5 4 3 2 1