هل سبق لك أن تساءلت عن سلسلة الأحداث المعقدة التي تحدث في جزء من الثانية بين كتابة "google.com" في متصفحك ورؤية صفحة البحث المألوفة تظهر؟ في هذا الاستكشاف التفصيلي، سنكشف عن العالم الرائع لتقنيات الويب وبروتوكولات الشبكات والرقص المعقد للبيانات التي تجعل تجاربنا عبر الإنترنت ممكنة.
عندما تكتب "google.com" وتضغط على Enter، يبدأ متصفحك في العمل:
تحليل عنوان URL : يقوم المتصفح أولاً بتحليل عنوان URL الذي أدخلته. فهو يحدد البروتوكول (في هذه الحالة، "http://" أو "https://" الضمني)، واسم النطاق ("google.com")، وأي مسار إضافي أو معلمات استعلام (لا شيء في هذا المثال البسيط) .
فحص HSTS : بالنسبة لمواقع الويب ذات الاهتمام الأمني مثل Google، يتحقق المتصفح من قائمة أمان النقل الصارم لـ HTTP (HSTS). إذا كان google.com مدرجًا في هذه القائمة (وهي موجودة)، فسيقوم المتصفح تلقائيًا بترقية الطلب إلى HTTPS.
فحص ذاكرة التخزين المؤقت: قبل الوصول إلى الشبكة، يقوم المتصفح بفحص ذاكرة التخزين المؤقت المحلية الخاصة به. تقوم ذاكرة التخزين المؤقت هذه بتخزين المعلومات من الزيارات السابقة، بما في ذلك:
إذا تم العثور على أي منها ولا يزال صالحًا (غير منتهي الصلاحية)، فيمكن للمتصفح تخطي بعض الخطوات التالية.
إذا لم يتمكن المتصفح من العثور على المعلومات الضرورية في ذاكرة التخزين المؤقت الخاصة به، فإنه يلجأ إلى نظام التشغيل (OS) للحصول على المساعدة:
فحص ملف المضيفين : يبحث نظام التشغيل أولاً في ملف "المضيفين" المحلي. يمكن لهذا الملف تعيين أسماء النطاقات إلى عناوين IP، مما قد يؤدي إلى تجاوز بحث DNS. ومع ذلك، بالنسبة لمعظم المستخدمين، لن يكون موقع google.com موجودًا في هذا الملف.
ذاكرة التخزين المؤقت لعميل DNS : يحتفظ نظام التشغيل بذاكرة التخزين المؤقت لنظام DNS الخاص به، بشكل منفصل عن ذاكرة المتصفح. يتم التحقق هنا بعد ذلك.
تكوين المحلل : إذا لم يكن عنوان IP موجودًا في ذاكرة التخزين المؤقت المحلية، فإن نظام التشغيل يستعد لطلب خادم DNS. يقرأ تكوين الشبكة الخاص به لمعرفة خادم DNS الذي سيتم الاستعلام عنه (عادةً ما يتم توفيره بواسطة مزود خدمة الإنترنت الخاص بك أو يتم تعيينه يدويًا).
إذا لم يتم تخزين عنوان IP الخاص بـ google.com في ذاكرة التخزين المؤقت، فسنحتاج إلى مطالبة نظام اسم النطاق (DNS) بترجمة "google.com" الذي يمكن قراءته بواسطة الإنسان إلى عنوان IP يمكن استخدامه بواسطة الآلة.
يتم تنظيم DNS في هيكل هرمي:
الخوادم الجذرية : في الجزء العلوي من التسلسل الهرمي. وهم يعرفون مكان العثور على الخوادم الرسمية لنطاقات المستوى الأعلى (TLDs) مثل .com، و.org، و.net، وما إلى ذلك.
خوادم TLD : تعرف هذه الخوادم جميع النطاقات المسجلة ضمن TLD الخاصة بها. يعرف خادم .com TLD عن google.com.
خوادم الأسماء الرسمية : هذه هي المسؤولة عن معرفة كل شيء عن مجال معين، بما في ذلك عنوان (عناوين) IP الخاص به.
التخزين المؤقت: قد تتضمن كل خطوة في هذه العملية التخزين المؤقت، لذا فإن الرحلة الكاملة ليست ضرورية دائمًا. يقوم المحلل بتخزين النتيجة النهائية مؤقتًا، عادةً لفترة زمنية تحددها Google (مدة البقاء، أو TTL).
موازنة التحميل : غالبًا ما تعرض الخدمات الكبيرة مثل Google عناوين IP متعددة. وهذا يسمح بموازنة التحميل وتحسين الموثوقية.
لنفترض أن بحث DNS يعرض النتيجة (المبسطة) التالية:
google.com. 300 IN A 172.217.167.78
هذا يعنى:
الآن بعد أن حصلنا على عنوان IP الخاص بـ Google، فقد حان الوقت لإنشاء اتصال.
طبقة التطبيق : يعمل متصفحك هنا، باستخدام HTTP (S) للتواصل.
طبقة النقل : يتم استخدام TCP هنا لضمان تسليم البيانات بشكل موثوق ومنظم.
طبقة الإنترنت: يستخدم IP لتوجيه الحزم بين الشبكات.
طبقة الارتباط : تتعامل مع النقل الفعلي للبيانات، سواء عبر إيثرنت، أو Wi-Fi، أو الشبكات الخلوية، وما إلى ذلك.
لإنشاء اتصال، تحدث مصافحة ثلاثية:
تحدد هذه العملية أرقامًا تسلسلية للمحادثة، مما يضمن إمكانية ترتيب الحزم بشكل صحيح وإمكانية اكتشاف أي حزم مفقودة وإعادة إرسالها.
بالنسبة لاتصالات HTTPS (التي تستخدمها Google)، تحدث مصافحة TLS (أمان طبقة النقل):
عند إنشاء اتصال آمن، يرسل متصفحك طلب HTTP GET لصفحة Google الرئيسية.
GET / HTTP/2 Host: www.google.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0 Accept: text/html,application/xhtml xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Connection: keep-alive Upgrade-Insecure-Requests: 1
يتضمن هذا الطلب:
تتلقى خوادم Google هذا الطلب وتعالجه. قد يشمل ذلك:
يرسل خادم Google استجابة HTTP، والتي قد تبدو كما يلي:
HTTP/2 200 OK Content-Type: text/html; charset=UTF-8 Date: Sat, 21 Sep 2024 12:00:00 GMT Expires: Sat, 21 Sep 2024 12:00:00 GMT Cache-Control: private, max-age=0 Server: gws X-XSS-Protection: 0 X-Frame-Options: SAMEORIGIN [... other headers ...]
يشمل هذا الرد ما يلي:
يحتوي متصفحك الآن على محتوى HTML ويبدأ في عرض الصفحة:
تحليل HTML: يقوم المتصفح بتحليل HTML، وإنشاء نموذج كائن المستند (DOM).
طلب موارد إضافية : عندما يواجه روابط إلى CSS، وجافا سكريبت، والصور، وما إلى ذلك، فإنه يرسل طلبات HTTP إضافية لهذه الموارد.
تحليل CSS: يقوم المتصفح بتحليل CSS وتطبيق الأنماط على عناصر DOM، مما يؤدي إلى إنشاء نموذج كائن CSS (CSSOM).
تنفيذ JavaScript: يقوم المتصفح بتنفيذ JavaScript، والذي يمكنه تعديل DOM وCSSOM.
العرض: يستخدم المتصفح DOM وCSSOM النهائي لعرض الصفحة على شاشتك.
ما يبدو وكأنه إجراء بسيط - كتابة "google.com" والضغط على Enter - يتضمن في الواقع سلسلة معقدة من الخطوات، بدءًا من عمليات بحث DNS وبروتوكولات الشبكة وحتى المعالجة من جانب الخادم والعرض من جانب العميل. تحدث هذه الرقصة المعقدة في أجزاء من الثانية فقط، وتعرض الهندسة المذهلة التي تدعم تجاربنا عبر الإنترنت.
إن فهم هذه العمليات لا يرضي فضولنا فحسب، بل يساعد أيضًا مطوري الويب ومحترفي تكنولوجيا المعلومات على تحسين مواقع الويب واستكشاف المشكلات وإصلاحها وإنشاء تطبيقات ويب أكثر كفاءة وأمانًا. في المرة التالية التي تنتقل فيها إلى موقع ويب، خذ لحظة لتقدير الأعاجيب التكنولوجية التي تعمل خلف الكواليس لجلب الويب إلى شاشتك!
الصور الموجودة في هذه المدونة تم إنشاؤها بواسطة الذكاء الاصطناعي.
اقرأ أيضًا HTTP مقابل HTTPS ما الفرق بينهما
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3