ما هو الفرق بين HTTP و HTTPS ، وماذا يفعلون ، وهل من الضروري الانتباه إلى الفرق بينهما؟
أثناء تصفحك للإنترنت فجأة يظهر لك الموقع رسالة مفادها أن الموقع ليس آمنًا ولا يجب عليك إدخال أي بيانات حساسة (كلمة مرور ، بريد إلكتروني ، بيانات بنكية ... إلخ) على هذا الموقع ، ما يحدث بالفعل هو أنك دخلت إلى موقع يعمل ببروتوكول HTTP وليس HTTPS ، وهذا لا يعني دائمًا أن الموقع خطير أو احتيالي كما يتخيل البعض ، ولكن بلا شك توجد مشكلة هنا. في هذا المقال سنتعرف على هذه المشكلة وحلها ويمكن تلخيص المشكلة في كلمة واحدة وهى “تشفير”.
قبل أن ندخل في التفاصيل ، إليك الرسم البياني التالي من INFOSECTRAIN لإعطائك فكرة عامة عن أهمية HTTPS
رسم بياني لمعرفة أهمية تشفير Https |
ما هو بروتوكول HTTP؟
يرمز HTTP إلى Hyper Text Transfer Protocol ، أو باللغة العربية: Hypertext Transfer Protocol ، وهو البروتوكول المسؤول عن نقل البيانات على الإنترنت. ينقل هذا البروتوكول جميع أنواع البيانات الموجودة على الشبكة (ملفات html ، صور ، مقاطع فيديو ، طلبات API ... إلخ) ، وهناك نوعان من طلبات HTTP ، وهما طلبات واستجابات.
يرمز HTTP إلى Hyper Text Transfer Protocol ، أو باللغة العربية: Hypertext بروتوكول نقل النص التشعبي ، وهو البروتوكول المسؤول عن نقل البيانات على الإنترنت. ينقل هذا البروتوكول جميع أنواع البيانات الموجودة على الشبكة (ملفات html ، صور ، مقاطع فيديو ، طلبات API ... إلخ) ، وهناك نوعان من طلبات HTTP ، وهما طلبات واستجابات.
ما هو الفرق بين الطلبات والاستجابات في HTTP؟
في جميع مواقع الإنترنت الحديثة ، يجب أن يكون هناك تفاعل من المستخدم مع الموقع ، لتوضيح نقطة الطلبات والردود ، وسنأخذ مثالًا بسيطًا ، ولنكن نموذج اتصل بنا.
من الطبيعي أن يقوم مطور الموقع ببناء نموذج ويضع فيه بعض حقول الإدخال مثل الاسم ورقم الهاتف والبريد الإلكتروني والرسالة ، وبعد ذلك يقوم المستخدم بملء الحقول وإرسال الرسالة إلى الموقع ، وخلال هذه العملية عدة تم التعامل مع الطلبات باستخدام بروتوكول HTTP ، فلنراجعها معًا:
1- طلب إظهار الصفحة GET Request
GET /coontact.html HTTP/1.1
Host: www.exaample.com
يُطلق على هذا الطلب اسم GET REQUEST ويطلب ببساطة ملف html الذي يعرض الصفحة التي تحتوي على نموذج اتصل بنا ، وقد حدث هذا الطلب عندما أدخل المستخدم العنوان http://www.exaample.com/coontact.html ونتيجة الطلب تم حفظ ملف html على الخادم بالاسم coontact.html
2- طلب إرسال طلب POST
POST /coontact.php HTTP/1.1
Host: www.exaample.com
أما الطلب الثاني فيحدث عندما يملأ المستخدم البيانات ويضغط على إرسال. عندما ضغط المستخدم على إرسال ، تم إرسال طلب POST إلى الخادم للمعالجة ، ثم تم إرسال الرسالة.
بالطبع ، تم تبسيط المثال السابق إلى أقصى الحدود لتوضيح فكرة الطلبات والردود فقط
يهدف المثال السابق إلى توضيح فكرة بروتوكول HTTP وأيضًا للتأكيد على أننا نستخدمه يوميًا وعندما ندخل إلى أي موقع ويب على الإنترنت ، فأنت تقرأ الآن هذه المقالة لأن متصفحك أرسل طلب GET إلى انقر فوق الخادم ، ثم انقر فوق الخادم لمعالجة الطلب واختيار المقالة المطلوبة من قاعدة البيانات وعرضها لك!
ما هي أهمية بروتوكول HTTPS؟
تكمن أهمية بروتوكول HTTPS في طريقة إرسال البيانات واستلامها من وإلى الخادم ، بينما يعمل بروتوكول HTTP بشكل صحيح في عرض ونقل البيانات ، لكنه يفتقر إلى حماية هذه البيانات أثناء نقلها من وإلى الخادم ، وهنا يأتي دور بروتوكول HTTPS.
يقوم HTTPS ببساطة بتشفير هذه البيانات أثناء نقلها من وإلى الخادم. على سبيل المثال ، إذا أدخلت كلمة مرور حسابك ، مثلاً 1233456789 , في حالة إرساله عبر HTTP ، سيظهر أثناء الاتصال بين الخادم والمتصفح ، تمامًا كما أدخلته ، دون أي تشفير أو حماية.وبالتأكيد سيتمكن أي مخترق من الاطلاع على كلمة مرورك ومعرفتها دون أي صعوبات ، ولكن عند إرسالها باستخدام بروتوكول HTTPS ، يتم تشفير البيانات وتحويلها إلى صيغة غير مفهومة للإنسان ، وقد تكون على شكل نص عشوائي وسلسلة من الرموز والأرقام ، حتى إذا اعترض أحد المتطفلين الطلب وعرف محتواه ، فلن يتمكن من الاستفادة منه بسهولة وقد لا يتمكن من الاستفادة منه أبدًا.
ولكن هل هو حقا بهذه الأهمية؟ في الواقع نعم. سواء كنت مطور مواقع ويب أو مستخدمًا يتصفح مواقع الويب على الإنترنت ، يجب عليك دائمًا التأكد من استخدام بروتوكول HTTPS ، وإليك بعض الأسباب:
1- حماية بياناتك الشخصية
بصفتك مستخدمًا أو مطورًا لموقع الويب ، فإن بيانات المستخدم هي العملة على الإنترنت ، وقد يؤدي استخدامك لبروتوكول http إلى تعريض بياناتك الشخصية (اسمك ، بريدك الإلكتروني ، رقم هاتفك ، بيانات الدفع) للخطر ، هل تتساءل عن سبب تلقيك الكثير من الرسائل غير المرغوب فيها أو رسائل بريد إلكتروني احتيالية؟ يعد استخدام بروتوكول http أحد أسباب تسريب بريدك الإلكتروني إلى الشبكة وبيعه.
2- التعامل مع الشركات / مقدمي الخدمات
إذا كنت تستخدم بروتوكول http على موقعك ، فلن تتمكن من التعامل مع العديد من مزودي الخدمة المهمين لأي موقع على الإنترنت ، مثال على ذلك هو أنك لن تتمكن من إضافة "تسجيل الدخول باستخدام Facebook" على موقعك ، على سبيل المثال.
3- ظهور موقعك فى نتائج بحث Google, Bing, Yandex
يتم احتساب النسبة المئوية لظهور موقعك في النتائج الأولى في محركات البحث بناءً على عدة عوامل منها جودة المحتوى وعلاقته بكلمة البحث وغيرها ، ومن هذه العوامل البروتوكول الذي تستخدمه لنقل البيانات ، إذا كنت تستخدم بروتوكول http ، فتأكد من ترقيته إلى https في أقرب وقت ممكن لزيادة احتمالية ظهور موقعك في نتائج البحث الأولى
كيف يقوم HTTPS بتشفير البيانات؟
يستخدم بروتوكول HTTPS تقنية TLS في التشفير ، و TLS تعني Transport Layer Security ، أو باللغة العربية: أمان طبقة النقل ، ويتم التشفير عن طريق مفاتيح تشفير المفتاح العام والمفتاح الخاص.
- Public Key - المفتاح العام
- Private Key - المفتاح الخاص
يتوفر المفتاح الخاص على الخادم فقط ، ويتم ربط المفتاحين العام والخاص عند دخولك إلى الموقع لأول مرة.
- Session Keys - مفاتيح الجلسة
بعد أن يرسل متصفحك طلبًا إلى الخادم ، يتم إنشاء "مفاتيح الجلسة" لاستخدامها في بقية الطلبات التي تتم بين المتصفح والخادم ، ويتم تشفير البيانات من خلال هذه المفاتيح.
كيف يمكنني استخدام تشفير HTTPS على موقعي؟
لاستخدام بروتوكول HTTPS على موقعك ، ستحتاج إلى شراء شهادة SSL أو الحصول على شهادة مجانية وتثبيتها على الخادم.