ما هو HTTPS؟
بروتوكول “HTTPS” هو اختصار (Hypertext Transfer Protocol Secure) ، يمكن أن نقول بأنّه النسخة الآمنة من بروتوكول “http”.
البروتوكول هنا المقصود به الأسلوب أو الطريقة التي يتم التواصل من خلالها بسهولة بين كل من الطرفي
- الطرف الأول: من يسأل عن المعلومة أو البيانات، وهو هنا مستخدم الإنترنت من خلال متصفحه الخاص.
- الطرف الثاني: المسؤول عن تخزين تلك المعلومات أو البيانات ليتم الاستفادة منها لاحقاً من قبل المستخدمين لها فيما بعد، وهو هنا السيرفر أو الخادم الذي يقوم بحفظ ملفات المواقع الإلكترونية.
عندما تذهب لمكتب البريد للحصول على طرد قد أُرسِل لك، فأنت تخبر الموظف بالكود أو رقم هذه الحوالة حتى يتمكن من الحصول على ما تريد بسهولة، البحث بالكود هنا هو الأسهل والأسرع مقارنةً من البحث عن طريق الاسم
وقياساً على المثال السابق، فإنَّ المتصفح الخاص بك (الذي يسأل عن المعلومة) يتواصل مع السيرفر (مكان تخزين المعلومة) بـ بروتوكول أو أسلوب معين لكي يعطيه هذا السيرفر المعلومات التي يريد بالتحديد في أسرع وقت ممكن.
لكي نفهم أكثر عن بروتوكول “https” علينا أن نعرف أولاً ما هو “http”.
ما هو بروتوكول http
عندما تفتح الحاسوب الشخصي الخاص بك لمشاهدة صورة مثلاً أو فيلم، أنت تفتح التقسيم (partition) ثم تفتح مجلد (folder) أو ربما أكثر حتى تحصل على ما تريد. ولكن في تلك الحالة أنت تعلم مسار أو مكان هذا الملف الذي تريد، وبالتالي تكون تلك العملية سهلة بالنسبة لك.
ولكن في حالة عدم معرفة مكان الملف، فأنت تبحث عنه بالاسم مثلاً في خانة البحث، ويستغرق جهازك عدَّة ثوان أو دقائق لكي يبحث في كل الملفات التي يمتلكها لكي يجد لك ما تريد. أمَّا عند اتصالك بالإنترنت فالمعلومات (مثل الصور والفيديو) التي تريدها يتم تخزينها في أماكن محدَّدة على شبكة الإنترنت (يمكن تشبيهها بجهاز حاسوب كبير يمكن لأكثر من شخص الدخول عليه في نفس الوقت).
لكي تحصل على ماتريد من هذه الأماكن والمصادر، فيجب عليك التواصل معها بأسلوب تفهمه، بحيث تعطيك ما تريد … مثلما يجيبك الحاسوب الخاص بك بالضبط. وبالتالي فإنَّ مهمَّة بروتوكول مثل “http” كما أشرنا سابقاً هي: قيامه بتسهيل عملية التواصل تلك، بحيث يعرف صاحب المعلومة أو مصدرها ما الذي تريد تحديداً عند زيارتك موقع معين حتى يعطيه لك، سواءً كان فيديو أو صورة أو نص مكتوب.
ولكي تكون الصورة أكثر وضوحاً لك سنعرض لك بعض المفاهيم الأساسية المرتبطة بهذا الموضوع وهي:
الخادم (Server)
في حاسوبك الشخصي أو هاتفك المحمول أنت تقوم بتخزين الملفات المختلفة في ذاكرته الداخلية، و هذه الملفات أنت الوحيد من يمتلك الصلاحية للحصول عليها. ولكن هنا في عالم الإنترنت يتم تخزين تلك المعلومات على خوادم أو سيرفرات خاصَّة، بحيث يمكن الحصول عليها بكل سهولة من أيِّ مكان حول العالم.
ما هو العميل (Client)؟
العميل هو من يسأل عن تلك المعلومات عند الخادم، وهو يشير لأيِّ مستخدم للإنترنت متمثلاً في متصفح الإنترنت الذي يستخدمه.
ما هو المحتوى (Resource) ؟
أنت تقوم بتخزين مختلف أنواع المحتوى على حاسوبك الشخصي، ملفات مكتوبة (text) أو صور أو فيديو.
أيُّ صفحة على الويب تتكوَّن من مجموعة مختلفة من المحتوى، هذه الصفحة التي تشاهدها أنت الآن تحتوي على صور ومحتوى مكتوب كذلك.
لكل محتوى عدَّة أنواع مختلفة، فمثلاً الصور يمكن أن تكون PNG أو JPEG أو أيُّ نوع آخر.
يقوم الخادم بتخزين المحتوى وترتيبه، بحيث عندما يطلبه أيُّ عميل يقوم باعطائه إياه.
ما هو الـ (URI)؟
على أجهزتك الشخصية من كمبيوتر أو هاتفك الذكي يوجد لكل ملف على هذه الأجهزة اسم قمت أنت باختياره، ربما قمت بتسمية ملف فيديو ” abc″ هذا الاسم لن يفهمه أحد إلّا أنت.
لكنَّ الأمر مختلف على شبكة الإنترنت، فيجب أن تكون تلك الأسماء موحَّدة ولها طريقة معينة لكي يفهمها أيُّ متصفح أو عميل عندما يطلبها من الخادم.
“URI” اختصاراً (Uniform Resource Identifier)، عبارة عن طريقة معينة تمَّ تحديدها عالمياً الهدف منها تسمية كل الملفات الموجودة على أيِّ سيرفر حول العالم.
ومن أهم أنواعه هو “URL” اختصار (Uniform Resource Locator) وهذا ما تجده في أعلى الصفحات الإلكترونية التي تزورها.
كيف تتم عملية التواصل بين (client) و(server) ؟
تخيل أنَّك تمتلك شركة ما وتريد الحصول على بضائع ومستلزمات خاصَّة بهذه الشركة من أحد المصانع الكبرى. لذلك يلزمك القيام بإعطاء كل المعلومات اللازمة من أسماء ومواصفات البضائع التي تريد لموظف شركتك إضافةً لعنوان هذا المصنع، والخطوات التالية تمثِّل ما يحدث بشكل واضح:
- يقوم الموظف بالنظر في العنوان لكي يحدِّد موقع المصنع على شبكة الطرق أو يبحث بدقة على خرائط جوجل مثلاً.
- يقوم الموظف بتحديد أفضل هذه الطرق لكي يتمكن من الوصول إلى الموقع الذي يريد.
- عندما يصل إلى المكان المحدَّد، يقوم بإعطاء ورقة الطلبات التي تحدِّد البضائع بدقة لمسؤول هذا المصنع.
- مسؤول المصنع ينظر في قائمة الطلبات، يتأكد ما إذا كانت متاحة لديهم وأنَّه يفهمها طبقاً لنظام المصنع.
- مسؤول المصنع يعطي البضائع للموظَّف، ثمَّ يعود الموظف من نفس الطريق إلى شركتك.
أيُّ اتصال يتم عن طريق الإنترنت يتم على شكل طبقات معينة أو خطوات، ولكل طبقة أو بروتوكول دور محدَّد. لنقوم بتطبيق المثال السابق الخاص بشركتك مع ما يحصل بالإنترنت.
1-الإنترنت هنا هو عبارة عن شبكة الطرق المهولة العملاقة والتي تربط بين الأماكن المتعدِّدة سواء كانت السيرفرات المختلفة أو العملاء.
2- لكل مكان على هذه الخريطة العملاقة “الإنترنت” اسم وموقع محدَّد له يتم تحديده بنظام IP address أو ICMP، والذي يحفظ لكل سيرفر أو موقع معين مكانه المحدَّد له الفريد من نوعه، بهدف تسهيل الوصول إليه ولكي لا يختلط الأمر على من يبحث.
الجدير بالذكر أنَّ أي جهاز كمبيوتر أو هاتف ذكي يمتلك IP address فريد، وهذا العنوان هو من يضمن وصول المعلومة المطلوبة لهذا الجهاز تحديداً دون غيره.
3- تحديد العنوان المناسب وأقصر هذه الطرق لوصول المعلومة وكذلك ضمان وصولها بالترتيب، هو دور منفصل تقوم به عدَّة بروتوكولات من أشهرها بروتوكول TCP.
4- طريقة التفاهم نفسها بين العميل وتحديد ما يريد بدقَّة بأسلوب متفق عليه (مثلما قمت بإرسال ورقة الطلبات إلى المصنع) المسؤول عنها عدَّة بروتوكولات من أشهرها http الذي نتحدث عنه في هذا المقال.
علماً بأنَّه يوجد أنواع أخرى من تلك البروتوكولات مثل FTP وأيضا web socket. وبهذا تتم عملية نقل المعلومات بطريقة بسيطة وسهلة، كما أصبحت تعلِّم أيضا ماذا يمثِّل http وما دوره في عملية نقل البيانات. الآن حان الوقت لمعرفة معلومات أكثر عن هذا البروتوكول.
كيف يعمل بروتوكول http
بعد أن فهمت كيف تتم عملية الاتصال بين المتصفح الخاص بك وبين السيرفر الذي يحتوي على البيانات، عليك أن تفهم قليلاً ما هي بالتحديد الطريقة التي يتم التفاهم من خلالها.
عندما تقوم بزيارة أي موقع على الإنترنت فأنت إمّا أن تطلب أن ترى بعض المعلومات، أو تقوم بإدخال معلومات والتعديل عليها.
فعندما قامت بزيارة هذه الصفحة باستخدام المتصفح الخاص بك، كان التفاهم بين المتصفح (client) والسيرفر الخاص بالموقع.
فهذا الاتصال يتم عن طريق رسائل طلبات (Request)، ثمَّ يأتي رد من السيرفر (Response) كما يحتوى هذا الاتصال على نسخة http التي يتم التواصل بها، واسم المحتوى ونوعه أيضاً.
بالطبع هناك تفاصيل أخرى ومعلومات تقنية لن نخوض فيها حالياً، ليظلَّ الأمر أكثر بساطةً وواضحاً للجميع، ولكن من المهم معرفة طريقة التواصل باستخدام بروتوكول http وهي كالتالي:
طرق الطلبات (Request Methods)
كما أخبرتك من قبل فإنَّ التواصل بين المتصفِّح والسيرفر يكون إمَّا بسبب الحصول على بيانات، أو إعطاء وتعديل البيانات في السيرفر نفسه.
وكما أشرت في الصورة السابقة فإنَّك ستجد طريقة الطلب هي Get، والتي تمثِّل رغبة المتصفح أو العميل في تلك الحالة في الحصول على المعلومات، وفي الجدول بالأسفل يمكنك معرفة أهم طرق الطلبات في بروتوكول http.
Get | عندما يرغب العميل في الحصول على ملفات (resources) من السيرفر. |
Post | عندما يرغب العميل في إرسال بيانات أو معلومات إلى السيرفر. |
Put | عندما يرغب العميل في تحديث بيانات معينة داخل ملف محدد (resource) بالسيرفر |
Delete | عندما يرغب العميل في حذف أحد الملفات (resources) من السيرفر |
هذه تمثِّل أشهر طرق الطلبات التي تتواصل بها أنت يومياً عن طريق متصفحك مع مختلف المواقع. هكذا تقوم برفع صور معينة إلى سيرفر معين أو مسح ملف معين وغيره من الطلبات.
أنواع حالة الردود من السيرفر (Response Status Types)
ألم تلاحظ في بعض الأحيان عندما تزور صفحة معينة على الويب وجود هذا الرَّقم وسط الصفحة 404 والذي يمثل خطأ.
هذا سوف يكون رد السيرفر على المتصفح في حال عدم وجود هذا الاسم أو الملف. يقوم السيرفر بالرد (يوجد خطأ أنا لا أملك هذا الملف). لهذا أحياناً قد تجد أنّ المتصفح نفسه يخبرك أنّه عليك التأكُّد من عنوان الصفحة التي ترغب في زيارتها لكي تحل هذه المشكلة.
كذلك كما أشرت في الصورة التي وضحنا فيها طريقة الاتصال بين الخادم والعميل، ستجد الكود 200 والذي يشير أنَّ الاتصال ناجح وأنَّ السيرفر قد وجد ما يريده المتصفِّح.
تلك كانت أهم الكودات (200 و 404) التي توضِّح حالة الردود بين المتصفِّح والسيرفر، وهناك كودات أخرى بالطَّبع.
أنت الآن أصبحت تفهم جيداً ماهية بروتوكول http، وكيف يتم الاتصال ونقل المعلومات على الإنترنت بشكل عام خصوصاً فيما يتعلَّق بالمحتوى الخاص بالويب.
ولكن بالطبع هناك بروتوكولات وطرق أخرى للتواصل، مثل التي تحدث في حالة الألعاب أونلاين، والتواصل عبر البريد الإلكتروني.