ما هو الفرق بين HTTP و HTTPS؟
نلاحظ أن معظم المواقع تشجع دائماً وتحث الأشخاص على الانتقال إلى HTTPS لعدد من الأسباب مثل مزايا الأداء والأمان الإضافي وحتى مزايا تحسين الظهور في محركات البحث والـ SEO. يتم طرح اختصارات HTTP وHTTPS باستمرار، مما يشجع ضرورة فهم أساسيات كيفية عملها وبعض التاريخ وراءها من حيث التطوير عبر الزمن.
لذلك سنستكشف بشكل أعمق الفرق بين HTTP و HTTPS، وما تعنيه؟ ولماذا قد حان
الوقت للانتقال إلى من HTTP
الى HTTPS؟
ما هو بروتوكول HTTP؟
يرمز بروتوكول HTTP إلى Hypertext Transfer Protocol،
أي أنه عندما تدخل http: // في شريط العنوان URL
الخاص بك أمام المجال (الدومين) Domain، فإنه يخبر المتصفح بالاتصال
بذلك الموقع عبر بروتوكول HTTP.
مبدأ عمل البروتوكول HTTP
يستخدم بروتوكول الـ HTTP بروتوكول TCP وهو بروتوكول التحكم في الإرسال،
وبشكل عام فإن المنفذ (Port)
المخصص لبروتوكول HTTP
هو المنفذ 80، حيث يستخدم هذا المنفذ لإرسال واستقبال حزم البيانات عبر الويب.
إذن، ببساطة، إنه بروتوكول يستخدمه العميل
والخادم ويسمح لك بالاتصال بمواقع الويب الأخرى. يرسل العميل رسالة طلب إلى خادم HTTP بعد مصافحة
بروتوكول TCP
(أي TCP Handshake)
والذي يستضيف موقع الويب، ثم يرد الخادم برسالة الاستجابة. تحتوي رسالة الاستجابة على
معلومات حالة الإكمال أو الاستكمال، مثل HTTP
/ 1.1 200 OK.
نبذة تاريخية عن البروتوكول HTTP
جاء مصطلح النص التشعبي في الأصل من تيد
نيلسون في عام 1965. تم تطوير HTTP
الأصلي واقترحه في الأصل من قبل تيم بيرنرز لي، وهو مدير اتحاد شبكة
الويب العالمية (W3C). حيث تكمن وظيفة اتحاد شبكة الويب W3C في قيادة الويب إلى أقصى إمكاناته
من خلال تطوير البروتوكولات والمبادئ التوجيهية التي تضمن نمو الويب على المدى الطويل.
تم نشر أول توثيق لـ HTTP في عام 1991 باسم HTTP / 0.9 والذي يتكون فقط
من طريقة طلب HTTP واحدة، وهي الأمر GET والتي تطلب البيانات من مورد محدد. في عام 1996، تم تطوير HTTP 1.0، RFC 1945، وكان هذا التطوير يتألف من
ثلاث طرق لطلب HTTP وهي GET، HEAD و POST وذلك لإرسال البيانات لتتم
معالجتها إلى مورد محدد. وأخيراً في عام 1997، تم تطوير بروتوكول HTTP / 1.1 RFC 2068 كمراجعة
لـ HTTP 1.0 وبعد 19 عاماً لا يزال يستخدم حتى اليوم لجميع طلبات HTTP.
على مر السنين، كانت هناك بعض المراجعات
الطفيفة على HTTP /1.1.
وفي عام 1999، قدم RFC 2616 خمس طرق جديدة، وهي: OPTIONS، PUT،
TRACE، CONNECT و DELETE. ثم في أذار من العام
2010، قدم RFC 5789 طريقة الـ PATCH
أي الـ PATCH Method.
في يومنا هذا، هنالك تسع طرق طلب مختلفة للإصدارات الحالية.
في بروتوكول HTTP / 0.9 و HTTP / 1.0 يتم إغلاق الاتصال بعد طلب واحد. أما في الإصدار HTTP/1.1، تم تقديم الاتصالات المستمرة،
أي أكثر من طلب / استجابة على نفس اتصال HTTP، وفي نفس الوقت، مما أدى إلى تقليل زمن الوصول بشكل كبير. كما وتمت
إضافة تحسينات أخرى مثل التخزين المؤقت Caching، ودعم أفضل لتقنية الضغط، ومشاركة الموارد عبر الأصل Cross-Origin Resource Sharing
أو ما يعرف بالاختصار CORS.
HTTP والبروتوكول TCP/UDP
تم إجراء تحسينات عديدة على بروتوكول TCP على مر السنين والذي يعمل عليه في
الأساس بروتوكول الـ HTTP،
ولكن في معظم الأحيان هو نفسه إلى حد كبير! كما كان عندما تم تعريفه لأول مرة في عام
1974، بحسب RFC 675. يستخدم HTTP أيضاً بروتوكول مخطط
بيانات المستخدم UDP،
الذي صممه David Reed في عام 1980، المحدد فيRFC 768، إنه أقل موثوقية ولكنه يستخدم على نطاق واسع في مؤتمرات الفيديو وألعاب
الفيديو والبث المباشر. حيث يسمح بإسقاط الحزم الفردية واستلامها بترتيب مختلف للحصول
على أداء أفضل.
بروتوكول HTTP ورموز الحالة
إذا كانت هناك مشكلة في طلب HTTP، فهناك قائمة برموز الحالة
(Status Codes)
التي تخبر المتصفح الخاص بك، حتى تتمكن من استكشاف الأخطاء وإصلاحها بشكل أفضل. تعتمد
الطريقة التي يتعامل بها الوكيل أو المستخدم مع الاستجابة الى ذلك الكود وحقول رأس
الاستجابة. على سبيل المثال، يعني الخطأ 404 أن المحتوى إما غير موجود أو تم نقله.
أو مثال آخر شائع هو الخطأ 502 (Bad Gateway) والذي قد يعني أن اسم المجال لا يتحول إلى عنوان IP الصحيح أو
أنه لا يشير إلى أي IP صحيح.
ما هو بروتوكول HTTPS؟
يرمز بروتوكول HTTPS الى بروتوكول نقل النص التشعبي
الآمن أي Hypertext Transfer Protocol، ويشار إليه أيضاً باسم
HTTP عبر
TLS أو
HTTP عبر SSL. عند إدخال https: // في شريط العنوان
الخاص بك (URL)
أمام المجال Domain،
فإنه يخبر المتصفح بالاتصال عبر بروتوكول HTTPS للتصفح. والشكل التالي يوضح ظهور بروتوكول الـ HTTPS في شريط
العنوان الخاص بمتصفحك، والذي تتصفح به موقع الكترونيات للجميع.
وبشكل عام، ستتم إعادة توجيه المواقع التي
تعمل عبر HTTPS تلقائياً، لذا حتى إذا قمت بكتابة http: //، فسيتم إعادة التوجيه للتسليم
عبر اتصال آمن، أي أنها ستتحول الى الاتصال الآمن عبر البروتوكول HTTPS. يستخدم HTTPS أيضاً بروتوكول TCP (بروتوكول
التحكم في الإرسال) لإرسال واستقبال حزم البيانات، ولكنه يفعل ذلك عبر المنفذ 443،
أي عبر البورت 443، ضمن اتصال مشفر بواسطة بروتوكول أمان طبقة النقل TLS.
نبذة تاريخية عن البروتوكول HTTPS
تم إنشاء HTTPS بواسطة Netscape Communications في عام
1994 لاستخدامه في متصفح الويبNetscape
Navigator. كما أن بروتوكول HTTPS استخدم في الأصل بروتوكول
الحماية SSL
الذي تطور في النهاية إلى البروتوكول TLS، وهو الإصدار الحالي المحدد في
RFC 2818 في أيار للعام 2000. ولهذا السبب قد تسمع
بمصطلحات الـ SSL
و TLS في بعض
الأحيان وخاصة عند التعامل مع بروتوكول HTTPS.
طريقة ومبدأ عمل البروتوكول HTTPS
ينقل HTTPS أمان البيانات
الخاص به باستخدام اتصال مشفر. يستخدم بشكل أساسي مفتاحاً عاماً ليتم بعد ذلك فك تشفيره
من جانب المستلم. يتم نشر المفتاح العام على الخادم، ويتم تضمينه فيما يعرف على أنه
شهادة SSL.
يتم التوقيع على الشهادات بشكل مشفر بواسطة شهادة تصديق Certificate Authority أو (CA)، ويحتوي كل متصفح على قائمة
بمراجع التصديق التي يثق بها ضمنياً. يتم منح أي شهادة موقعة من CA في القائمة
الموثوق بها بقفل أخضر في شريط عنوان المتصفح، لأنه ثبت أنه "موثوق" وينتمي
إلى هذا المجال. والجدير بالذكر هنا، أن هنالك شركات مثل Let's Encrypt قامت بجعل
عملية إصدار شهادات SSL بشكل مجاني.
لماذا يفضل الانتقال من HTTP الى HTTPS؟
وفقاً لاستطلاع موقع شركة GlobalSign، يتخلى 84٪ من المتسوقين عن
الشراء إذا تم إرسال البيانات عبر اتصال غير آمن. كما وأن 28.9٪ يبحثون عن شريط العنوان
الأخضر (القفل الأخضر). لذلك، لا تقم أبداً بإدخال تفاصيل بطاقة الائتمان (الفيزا
أو الماستر كارد أو غيرها) الخاصة بك على مواقع الويب التي تعمل عبر بروتوكول HTTP. الغرض الرئيسي من استخدام
HTTPS هو لأسباب
تتعلق بالأمان والخصوصية. عندما يتم تشفير البيانات، فهذا يعني أنه لا يوجد شيء يمر
عبر الشبكة كما هو، أي بنص عادي Clear
Text.
قد يتساءل الكثير من الأشخاص عما إذا كانوا
بحاجة إلى عناء استخدام HTTPS على مواقع
أصغر، مثل المدونات وغيرها، لكن تذكر دائماً، أنه حتى صفحة تسجيل الدخول الخاصة بك
يجب أن تكون مشفرة!
ما هو بروتوكول SPDY؟
SPDY
(يُنطق SPeeDY
أي سبييدي) هو بروتوكول شبكة، تم تصميمه بواسطة Google بهدف جعل
الويب أسرع. تم الإعلان عنه في الأصل في عام 2009. يتطلب SPDY استخدام
SSL / TLS
(مع امتداد TLS ALPN)
للأمان ولكنه يدعم أيضاً التشغيل عبر TCP
العادي. لكن هنالك بعض الميزات لهذا البروتوكول الرائع والتي
سيتم ذكرها.
فوائد وميزات بروتوكول SPDY
1- يسمح للعميل والخادم بضغط عناوين الطلبات والاستجابة، مما يقلل من استخدام
النطاق الترددي عندما يتم إرسال العناوين المماثلة (مثل X-Cache) مراراً وتكراراً لطلبات متعددة.
2- يسمح بطلبات متعددة عبر اتصال واحد، وبالتالي يوفر في عمليات النقل
عبر الذهاب والإياب بين العميل والخادم. علاوة على ذلك، فإنه يتح ميزة منع الطلبات
(البيانات) ذات الأولوية المنخفضة من تأخير الطلبات (البيانات) ذات الأولوية الأعلى.
3- يُمكِّن الخادم من دفع وتحويل الطلبات أو البيانات بشكل مسبق إلى العميل الذي سيحتاجها
(مثل CSS والصور)
دون انتظار أن يتم طلبها من قبل ذلك العميل.
ومع ذلك، في 11 شباط للعام 2016، أعلنت
Google أن Chrome لن يدعم
SPDY بعد الآن
وذلك بسبب توفر بروتوكول HTTP /2
ما هو بروتوكول HTTP / 2؟
HTTP / 2 هو تحديث
البروتوكول HTTP / 1.1 ومبني
على تقنية الـ SPDY.
تم تطويره بواسطة مجموعة العمل IETF’s HTTP، والتي تم نشرها في شهر أيار للعام 2015 وتم تعريفها في RFC 7540. ونظراً لدعم المستعرض لـ
HTTP / 2، فإن بروتوكول HTTPS يعد
وجوده أساسياً للاستفادة من تلك الميزة. ويتم في يومنا هذا توجه المزيد من العلامات
التجارية والمواقع الكبرى الى الانتقال الآن إلى HTTP / 2.
ميزات وحسنات البروتوكول HTTP /2
فيما يلي بعض مزايا وفوائد البروتوكول
HTTP / 2:
1- بروتوكول HTTP / 2
هو بروتوكول ثنائي (أي Binary)
بدلالة 0 أو 1 وليس بروتوكول نصي.
2- إنه متعدد الإرسال بالكامل وفي نفس الوقت، بدلاً من الترتيب وتتالي قِطَع
البيانات.
3- تعمل زيادة السرعة على تقليل أوقات رحلة الذهاب والإياب الإضافية Round Trip Times أو (RTT)، مما يجعل تحميل موقع الويب
الخاص بك أسرع دون أن تلجأ الى أي تحسين.
4- يمكنه التفرع والتوازي في البيانات باستخدام اتصال واحد.
5- يستخدم آلية الضغط HPACK
مع ترميز Huffman
لتقليل وتخفيض العناوين Headers.
6- يسمح للخوادم "بدفع وتوجيه" الاستجابات بشكل استباقي ومسبق إلى
ذاكرات العملاء المؤقتة بدلاً من انتظار طلب جديد لكل مورد (موقع).
7- يسمح امتداد إضافة ALPN
الجديدة بعمل اتصالات مشفرة بشكل أسرع، حيث يتم تحديد بروتوكول التطبيق
أثناء الاتصال الأولي.
8- لم تعد هناك حاجة إلى تجزئة النطاق ودمج الموارد أو البيانات مع HTTP / 2.
9- يعالج مشكلة حظر الخط الرئيسي (HTTP Head of line blocking)
في HTTP / 1.1،
والتي غالباً ما يشير هذا النوع من الحظر في HTTP / 1.1 إلى حقيقة
أن كل عميل لديه عدد محدود من اتصالات TCP إلى الخادم
(عادةً ما تكون 6 اتصالات لكل اسم مضيف) ويجب أن ينتظر إجراء طلب جديد عبر أحد هذه
الاتصالات لإكمال الطلب السابق على نفس الاتصال قبل أن يتمكن العميل من تقديم طلب جديد.
ما هو الفرق بين HTTP و HTTPS؟
فيما يلي بعض الاختلافات الرئيسية بين
بروتوكولات HTTP و HTTPS
1- عنوان بروتوكول HTTP في الـ URL (أي في شريط
عناوين المتصفح) هو http://
وعنوان بروتوكول HTTPS
في الـ URL هو https://.
2- يعد البروتوكول HTTP غير آمن بينما البروتوكول HTTPS يعد آمن.
3- يرسل HTTP البيانات
عبر المنفذ 80 بينما يستخدم HTTPS
المنفذ 443.
4- يعمل HTTP في طبقة
التطبيق Application Layer، بينما يعمل HTTPS
في طبقة النقل Transport
Layer.
5- لا توجد شهادات SSL
مطلوبة لـ HTTP، لكن مع HTTPS
يلزم أن يكون لديك شهادة SSL وموقعة من
قبل CA.
6- لا يتطلب HTTP التحقق من
صحة المجال، بينما يتطلب HTTPS
على الأقل التحقق من صحة المجال وبعض الشهادات تتطلب التحقق من صحة
المستندات القانونية.
7- لا يوجد تشفير للبيانات المرسلة في HTTP، أما باستخدام HTTPS، فيتم تشفير البيانات قبل
الإرسال.
نصيحة هامة حول بروتوكول http و https
نحن في موقع الكترونيات للجميع، نشجعك
وبشدة على التفكير في التبديل إلى بروتوكول HTTPS. حيث أننا رأينا تحسينات عديدة
في الأداء عندما يقوم الأشخاص بالتبديل من HTTP
إلى HTTPS، من شأنها أن ترتقي بموقعك الالكتروني الى أفضل النتائج المرجوة.