راهنمای مطالعه
بسیاری از ترفندهای تکنولوژی از ثبت تصویر توسط دوربین گوشی همراه گرفته تا پخش آنلاین موسیقی روی مرورگر، در سال ۲۰۱۷ چندان برای ما سؤالبرانگیز و جذاب به نظر نمیرسند. این عملکردها ظاهراً ساده هستند اما ما فقط قادر هستیم نمای ظاهری آنها را ببینیم. دستگاههای هوشمند برای اجرای این فرمانها روندهای محاسباتی و پردازشی متعددی اجرا میکنند. همه این اتفاقها در پشتصحنه رخ میدهد و ما بهعنوان کاربر نمیتوانیم روند واقعی پردازش و تبادل اطلاعات را مشاهده کنیم. برای مثال ورود به سایت Google.com را در نظر بگیرید.
شاید تابهحال اصلاً به بازدید از این وبسایت که مشهورترین موتور جستجوی جهان است، آنگونه که باید فکر نکرده باشید؛ اما گوگل احتمالاً همان وبسایتی است که در طول روز بیشتر از هر آدرس دیگری به آن سر میزنید. برخی کارشناسان مقالههایی دراینباره نوشتهاند و بهخوبی همه عملیات پشت پرده صفحههای وب را شرح دادهاند. جالب است بدانید در همان حال که صفحه گوگل را باز میکنید، حجم عظیمی از پردازش برای ارائه اطلاعات موردنظر شما در پسزمینه اتفاق میافتد.
در این مطلب قصد داریم شما را با مهمترین اتفاقها در این روند آشنا کنیم.
از صفحهکلید تا نمایشگر
قبل از هر چیز کامپیوتر شما باید همه سیگنالهایی را که از سوی صفحهکلید وارد میشوند، ترجمه و تبدیل کند. شما با هر بار فشردن دکمههای صفحهکلید درواقع یک مدار الکتریکی مشخص را میبندید و این مدار به کامپیوتر شما پیغام میدهد که قصدتان دقیقاً کدام سمبل یا حرف است. کامپیوتر حدوداً هر ۲ میلیثانیه همه ورودیها را بررسی و پردازش میکند.
بهمحض کلیک کردن روی صفحه مرورگر و تایپ حرف g در نوار مخصوص آدرس، انواع و اقسام کدهای الکترونیکی و دستوری اجرا میشوند. برای مثال مرورگرتان ابتدا نحوه دسترسی شما را ازنظر ناشناس (Incognito) بودن بررسی میکند. اگر در حالت ناشناس وارد نشده باشید، مرورگر همه اطلاعات قبلی مربوط به حافظه (history) و وبسایتهای موردعلاقهتان (bookmarks) را به شما ارائه میکند و امکان دسترسی به آدرسهای مشابه را فراهم میآورد. مرورگر همچنین عبارتهای مشابه را که قبلاً سایر کاربران در وب جستجو کردهاند، به شما پیشنهاد میدهد. همچنان که حروف و کلمههای بعدی را به عبارت موردنظرتان اضافه میکنید، نتایج پیشنهادی و آدرس URL آنها هم بهروزرسانی میشوند.
احتمالاً پیش از آنکه تایپ کردن عبارت در نوار آدرس توسط شما به اتمام برسد، قادر خواهید بود google.com را مشاهده کنید. این روند به کمک الگوریتمهای هوشمند مرورگر شما و موتور جستجوی پیشفرضی که در آن تنظیم شده است، اجرا میشود. پس از تایپ و انتخاب آدرس URL موردنظر باید دکمه Enter را فشار دهید و آن را تائید کنید. فرمان Enter در درایور صفحهکلید توسط Human Interface Device (رابط کاربری انسانی) به کد الکترونیکی تبدیل میشود و بعدازآن هم به سیستمعامل اصلی کامپیوتر میرود.
تحلیل عبارت تایپ شده
مرحله بعد تجزیهوتحلیل عبارتی است که در نوار آدرس مرورگر وارد کرهاید. آیا آدرس URL است؟ عبارت موردنظر برای جستجو در وب تایپ شده است؟ اگر مرورگر بتواند پروتکل صحیحی مانند HTTP یا یک دامنه معتبر مانند Google.com را شناسایی کند، قادر خواهد بود صفحه موردنظرتان را هم باز کند. در غیر این صورت جستار را به همراه کد نشاندهنده مرورگر ارجاع دهنده به موتور جستجوی پیشفرض ارسال میکند.
اگر بعد از فشردن Enter به یک وبسایت راهنمایی شدید، مرورگر فهرست پروتکل امنیتی HSTS را بررسی میکند. این فهرست شامل همه وبسایتهایی است که ترجیح میدهند به پروتکلهای امنی مانند HTTPS وصل شوند. اگر مرورگر توانست وبسایت موردنظر شما را در این فهرست پیدا کند، اولین درخواست اتصال را از طریق HTTPS ارسال میکند. در غیر این صورت پروتکل HTTP مورداستفاده قرار میگیرد.
مقاله مرتبط: ٧ وبسایت قدرتمند برای بررسی وضعیت DNS سایت
مرورگر بعدازاین مرحله سرور DNS را جستجو میکند. جستجوی DNS تقریباً شبیه جستجوی آدرس محل زندگی یک فرد در دنیای واقعی است. مرورگر در این قسمت سعی میکند محل استقرار وبسایت موردنظر شما را پیدا کند. البته اگر قبلاً از این وبسایت بازدید کرده باشید، مرورگرتان احتمالاً اطلاعات مربوط به DNS آن را ذخیره کرده است و ابتدا در قسمت cache به دنبال آن میگردد. در غیر این صورت در فهرست آنلاین آدرسهایی که در سیستمعامل ذخیره شدهاند را میگردد و اگر آن را نیافت به فهرست راهنمای مشابه موجود در وب مراجعه میکند تا سرانجام وبسایت موردنظر شما را پیدا کند.
برقراری ارتباط با وبسایت
روند دیگری به نام ARP یا «پروتکل تفکیک آدرس» همزمان با جستجوی سرور DNS اجرا میشود. این روند درواقع جزئی از جستجوی DNS به شمار میرود و قصد دارد بفهمد که شما میخواهید به یک ماشین هوشمند روی شبکه خودتان وصل شوید یا با وبسایتی کاملاً مجزا در بستر وب ارتباط برقرار کنید. مرورگر سرانجام پس از تائید آدرس و محل استقرار وبسایت قادر است حفره ارتباطی (socket) را ایجاد کند. منظور از این حفره درواقع یک ارتباط دوجانبه میان وبسایت موردنظر و کامپیوتر شماست که اطلاعات در آن بهصورت دوطرفه جریان پیدا میکند.
مرحله بعدی هم نوعی معرفی و مکالمه میان کامپیوتر و وبسایتی است که درخواست کردهاید. یک زبان رایج در این مرحله ایجاد میشود تا وبسایت به نمایش درآمده با کامپیوتر ارتباط برقرار کند و آن را تحت بررسی هویتی و امنیتی قرار دهد. کلید این مرحله در دست پروتکل TLS یا همان «امنیت لایه انتقال» است. این پروتکل به ایجاد ارتباطی امن میان کلاینت با اپلیکیشنها و وبسایتهای اینترنتی کمک میکند.
وقتی مرحله معرفی اولیه و بررسی ارتباط امن به پایان رسید، انتقال دادههای اصلی آغاز میشود. مرورگر حالا میتواند هر درخواستی را به وبسایت منتقل کند و بالعکس؛ اما در مثال google.com تنها درخواست خواندن کدهای HTML و سایر زبانهای برنامهنویسی که در صفحه خانه گوگل به کار رفتهاند از سوی مرورگر به وبسایت ارسال میشود. همه این اتفاقها از دید کاربر تنها در کسری از ثانیه رخ میدهد و بهسرعت شاهد بارگذاری صفحه خانه این موتور جستجوی محبوب خواهد بود.
نمایش صفحه خانه وبسایت گوگل
حالا مرورگر مورداستفاده شما باید همه اطلاعات دریافتی از سوی وبسایت را بهدرستی ترجمه و ارائه کند. این مرحله به تجزیه و جداسازی انواع کدهای برنامهنویسی ازجمله HTML (چارچوب اصلی صفحه)، CSS (زبان مربوط به طرحبندی و سبکسازی گرافیکی) و JavaScript (زبان مربوط به برنامهنویسی عناصر پویا در وبسایت موردنظر شما) اختصاص دارد. مرورگر شما همچنین ممکن است در صورت نیاز فایلهای تصاویر و PDF را هم پردازش کند و به نمایش درآورد.
rendering engine همان قسمتی است که وظیفه پردازش این حجم عظیم را بر عهده دارد. توسعهدهندگان ماشینهای پردازشی منحصربهفردی را برای هر مرورگر طراحی کردهاند و به همین خاطر شاید تابهحال متوجه شده باشید که طرحبندی اصلی یک وبسایت ممکن است در مرورگر کروم با آنچه در اینترنت اکسپلورر مشاهده میکنید، متفاوت باشد. برای مثال فایرفاکس به ماشین Gecko مجهز شده است اما مرورگر کروم از ماشین Blink بهره میبرد که بر اساس ماشین Webkit طراحی شده است و مرورگر Safari از آن استفاده میکند. شرکت مایکروسافت هم از ماشین Trident در مرورگر اینترنت اکسپلورر استفاده میکرد و حالا EdgeHTML را در مرورگر Edge به کار میبرد که بر اساس Trident طراحی شده است. احتمالاً تابهحال برایتان پیش آمده است که بخواهید وارد وبسایتی شوید و آن وبسایت هم به شما هشدار دهد که برای مشاهده صفحهها حتماً باید از مرورگر اینترنت اکسپلورر استفاده کنید. این وبسایت احتمالاً از تکنولوژیهای قدیمی استفاده میکند که فقط ماشین پردازشی Trident از آنها پشتیبانی میکند.
مرورگر همچنان که کدهای برنامهنویسی را میخواند و به صفحه وب قابلمشاهده کاربر تبدیل میکند، از واحد پردازش مرکزی (CPU) و واحد پردازش گرافیکی (GPU) هم در اجرای این فرآیند کمک میخواهد. این روند در هنگام فراخوانی وبسایت گوگل شامل نمایش نوار جستجو و لوگوی گوگل در قسمت بالای آن یا حتی تصاویر گرافیکی و انیمیشنی میشود که این موتور جستجو به مناسبتهای مختلف طراحی میکند. پس از نمایش این عناصر در صفحه خانه گوگل اگر مشکل دیگری در مرورگر، شبکه ارتباطی یا سرور گوگل به وجود نیاید، میتوانید عبارت موردنظرتان را در نوار مخصوص جستجوی آن وارد کنید.
جالب است بدانید همه اجزای روندی که برایتان شرح دادیم از محاسبات، پردازش و انتقال دادهها در حالی انجامشدهاند که شما هنوز به جستجوی موضوع موردنظرتان نپرداختهاید. حال تصور کنید جستارهای شما قرار است در چه روند پردازشی قرار گیرند و درنهایت چگونه برای شما به نمایش درآیند. درواقع چگونگی دستهبندی، پردازش و ترجمه نتایج جستجوی موردنظر شما داستان مفصل دیگری است. همانطور که در ابتدای مطلب هم اشاره کردیم، این همه اتفاقاتی که در پسزمینه باز کردن وبسایت گوگل اتفاق میافتد نیست و ما تنها به ذکر مراحل اصلی بسنده کردهایم. امیدواریم حالا بهخوبی متوجه شده باشید که در پس هر عملیات ظاهراً کوچک و سادهای در مرورگر شما چه اتفاقاتی رخ میدهد.