مؤخرا كانت بيني وبين صديق لي مناقشة بين كل من http و https ولقد زادني ذلك النقاش مزيد من الفضول حول هذا الفرق فبدأ أقرا وأبحث لأكتشف المزيد عن هذا الفرق و اريد اليوم أن أشارككم الفرق بينهما.
HTTP هو بروتوكول للاتصال عبر الانترنيت فعندما نقوم بكتابة شيء على شريط العناوين الموجود على المتصفحات بقوم هذا الأخير بمعرفة العنوان ويعرض لك الصفحة المناسبة، وعندما نقوم بمشاهدة شريط العنوان نلاحظ ان المتصفح يقوم بعرض عناوين المواقع بدون HTTP وذلك لان المتصفحات الحديثة تقوم باخفائها وعندما تقوم بنسخ الرابط وتقوم بلصقه على محرر النصوص ستشاهد ان الرابط يبدأ بـ HTTP، المشكلة مع HTTP أنه معرض للتنصت وانواع أخرى من الهجمات، ولهذا جاء HTTPS وهو لا يختلف عن البروتوكول الأول ولكنه مع يحتوي على طبقة محمية، الى هنا نصل الى طرح بعض الأسئلة.
- هل هذا يؤثر على سرعة الانترنيت بشكل من الاشكال؟
- هل هناك مشاكل عندما نتعامل مع كمية كبيرة من الترافيك على الانترنيت ؟
لماذا على أن أهتم بكل هذا ؟
لكي نجيب على هذا الموضوع علينا ان نحلل عمل HTTP، فلنقل اننا كتبنا شيء على شريط العناوين الخاص بالمتصفح وهذا طبعا يعني أننا نريد طلب صفحة ما متواجدة على سيرفر في مكان ما وفي هذه الحالة يطلق علينا اسم الزبون وقد فمنا بتقديم رسالة طلب HTTP الى السيرفر وقد جاء الأن دور السيرفر للرد وقبل أن يرد علينا يقوم هذا الأخير بجلب الموارد اللازمة مثل الملفات والصور الخ بعد ذلك يقوم السيرفر بارسال رسالة رد الى الزبون ويتجسد ذلك بعرض الموقع على المتصفح الخاص بنا.
دعونا الان نتكلم عن HTTPS حيث أن المشكلة مع HTTP أنه ليس أمن فاذا كانت لدبك بيانات حساسة فأنت بحاجة الى حماية تلك المعلومات من التنصت، وعندما نقوم بكتابة عنوان موقع ما ونبدأ ذلك العنوان ب HTTPS فهذا يعني أننا نطلب من المتصفح أن يستخدم طبقة مشفرة لحماية الترافيك من التنصت ولكن المشكلة الوحيدة مع هذا البروتوكول بطئه في نقل البيانات فعندما نقوم بتشفير الترافيك طبعا ستكون هناك بعض عمليات معينة وهذا يتطلب وقتا اضافيا فاذا لم أعددت جهازك بطريقة مناسبة فان الموقع سيظهر ببطأ.
فماهي أسباب هذا البطئ؟
الشيء المثير للاهتمام هو ان HTTPS يتطلب تقريبا أربع مرات أطول ليقوم بتحميل صفحة مقارنة ب HTTP وهذه النسبة تعتمد على عوامل مختلفة وهذا ما سنحاول اكتشافه.
كيف لنا أن نعرف أنه يستغرق 4 مرات أطول ؟
لقياس الفرق لزمن الوصول بين HTTPS و HTTP سنقوم بأخذ نفس الطلب وقياس أوقات الاستجابة لكل من البروتوكولين سنقوم باستخدام ما يسمى بروتوكول التحكم بالارسال للاتصال بالأنترنيت، ويتم تغليف كل من HTTPS و HTTP باستخدام بروتوكول TCP و نحن نريد أن نتعرف على TCP لأننا بحاجة الى معرفة ماهو handshack فالبروتوكول TCP يستخدم ما يسمى handshack لتأسيس اتصال مع الخادم وهو يستخدم ثلاث حزم حيث يقوم الزبون حزمتين والسيرفر يقوم بارسال واحدة وعندما يقوم الزبون باستقبال الحزمة الثانية من handshack سيقوم بارسال حزمة اقرار والنظر في الاتصال المفتوح وبالضبظ فان ارسال واستقبال حزمة اخرى مطلوب قبل ارسال طلب HTTP الخاص بك ولمعرفة كيفية حدوت هذه الطريقة علينا اجراء تجربة .
فلنبدأ مع TCP ونرى مالذي يحدث، سنقوم باستخدام الأمر curl وقياس زمن الاستجابة .
نكتب هذا الامر في الطرفية :
$ seq 7 | xargs -I@ -n1 curl -so /dev/null -w "%{time_connect}\n" htt
p://www.google.comلقد قمنا باستخدام الأمر curl سبع مرات فقط لنتأكد ونرى القيم المتوسطية وسوف نحصل على :
0.040 0.042 0.041 0.043 0.048 0.039 0.044
الان سنقوم باستخدام الأمر ping لكي نقوم بقياس زمن الاستجابة وعلينا ان نطلب منه أن يقوم بما يسمى round-trip اي يجب ان يقوم بارسال الطلب واستقبال الرد وذلك عبر كتابة الأمر في الطرفية :
ping -q -c 7 www.google.com
وسوف نحصل على مايلي :
--- www.google.com ping statistics --- 7 packets transmitted, 7 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 37.098/40.333/43.420/2.003 ms
وكما تلاحظ فانها تقريبا نفس النتائج مثل القيم المتوسطية باستخدام الامر curl .
ولكن ماذا عن HTTPS ؟
$ curl -kso /dev/null -w "HTTP time:%{time_connect}, HTTPS time:%{tim
e_appconnect}\n" https://www.google.com
HTTP time:0.042, HTTPS time:0.163انظر جيدا الى السطر الاخير لترى الفرق بين السرعتين .
لماذا يحدث هذا؟
دعونا نتعمق أكثر عن طريق تحليل الحزم التي تم ارسالها وفي هذه الطريقة يمكننا أن نرى بالضبط مالذي حدث، سنقوم باستخدام اداة اسمها tcpdump حيث تقوم هذه الأداة بالتقاط جميع بيانات HTTPS بعد ذلك تقوم باستخدام openssl s_client للاتصال مع سيرفر HTTP عبر SSL (بروتوكول حماية مستخدم في HTTPS) .
سنقوم أولا بتشغيل tcpdump بعد ذلك نقوم بتشغيل openssl s_client ودائما مع الطرفية نكتب الأمر التالي :
$ sudo tcpdump -ttttt -i any 'port 443 and host www.google.com'
قم بفتح نافذة جديدة من سطر الاوامر ونكتب الأمر التالي :
$ openssl s_client -connect www.google.com:443
سوف ترى مجموعة من الأشياء معروضة على الطرفية، واذا قمنا بتلخيص تلك الأشياء سوف ترى أننا بحاجة الى 12 حزمة SSL handshack مقارنة مع 3 حزم TCP وحدها وهذا يعني أنها بحاجة الى أن تذهب (الحزم) ذهابا وايابا من خلال 3 شبكات اضافية.
لقد افترضنا أن HTTPS بطيئ بسبب العمليات التي يقوم بها من تشفير وحسابات مختلفة لحماية الترافيك ولكن اتضح لنا ان دهاب ورجوع حزم شبكات SSL تساهم بشكل كبير في البطئ.
وخلاصة القول اخواني هو انه لا يهم سرعة الانرنيت أو السيرفر طالما لا يتواجد السيرفر المطلوب جغرافيا بالقرب منك

The King Casino - Ventureberg
ردحذفThe King Casino is owned by British ventureberg.com/ casino https://deccasino.com/review/merit-casino/ operator nba매니아 Crown Resorts and sporting100 operated by Crown Resorts. It is owned by British ADDRESS: CASTLE