آناتومی درخواست های وب – دیدگاه PHP


این پست وبلاگ یک فصل رایگان از کتاب پرش شروع محیط زیست PHP توسط برونو اسکوورک است.

درک مفاهیم و فرآیندهای اساسی برنامه نویسی وب قبل از وارد شدن به جزئیات ریزه کاری کدگذاری در PHP مهم است. که این فصل انجام می دهد.

قبل از ارائه متن از فصل ، چند سوال از برونو پرسیدیم.

HostAdvice: چه چیزی باعث شد این کتاب را بنویسید?
برونو اسكورك: من می خواستم کتابی بنویسم که به مواردی بپردازد که مانع از شروع صحیح بیشتر افراد با PHP می شود – مجموعه ای که قبل از کد واقعی انجام می شود. به چه نرم افزاری نیاز دارید؟ چرا؟ چرا X و چرا Y به جای آن؟ چگونه می توانید هنگام استقرار برنامه خود به صورت یکپارچه راه اندازی کنید و از چه مواردی برای مطابقت با همه تیم استفاده کنید. من اساساً می خواستم توضیح دهم "زیر ساخت" از برنامه های PHP بطور کلی و برنامه های PHP ، به روشی که امور را پاک کرده و پایه ای محکم را ایجاد کند که بتواند کدگذاری راه درست را شروع کند.

HostAdvice: هنگام نوشتن کتاب چه دانش جدیدی کسب کردید?
برونو اسكورك: من یاد گرفتم که کتابهای فنی حتی سریعتر از آنچه در ابتدا پیش بینی می کردم قدیمی تر می شوند. از طریق پاسخ دادن به سؤالات مربوط به روش تنظیم که به دلیل تغییرات اندک در نرم افزار مورد استفاده ایجاد شده است ، آموختم که دستورالعمل ها باید تا حد امکان گسترده و جهانی باشند ، در حالی که هنوز وضوح و تمرکز را حفظ می کنند. این سخت ترین بخش بود – با توجه به اینکه چقدر نرم افزاری که از آن استفاده می کنیم حساس به زمان است ، دستورالعمل ها را بی زمان ساخت. من در حال حاضر در حال تهیه یک به روزرسانی از کتاب هستم که به اکثر این تغییرات دائمی می پردازد.

HostAdvice: هرگونه توصیه دیگری برای خوانندگان ما?
برونو اسكورك: با توجه به اینکه برخی از رویکردهای میزبانی در کتاب را پوشش می دهم ، و راه هایی برای کار کردن سرورها به جای روش دیگر ، فکر می کنم این کتاب یک منبع عالی برای بازدید کنندگان Hostadvice باشد – به خصوص که توضیح می دهم چرا میزبانی مشترک به اشتراک گذاشته شده است (حتی اگر من از بعضی موارد استفاده کنید) این روزها واقعاً گزینه مناسبی نیست. این امر به ویژه صادق است زیرا من اساسی ترین مهارت های لینوکس را در این کتاب پوشش می دهم ، و به مردم می آموزم که چگونه خودشان برخی از تعمیر و نگهداری اساسی سرور را انجام دهند. با استفاده از این مهارت ها ، کاربران می توانند به راحتی یک دستگاه بسیار قدرتمند تر از یک هاست مشترک را راه اندازی کرده و هر نوع نرم افزاری را روی آن اجرا کنند – هیچ محدودیتی که توسط شرکتی که می پردازید برای اجرای امور برای شما تعیین نشده است..

آناتومی درخواست های وب

قبل از اینکه به تنظیم دقیق یک محیط PHP خوب بپردازیم ، باید درک کنید که چگونه درخواست های وب در واقع کار می کنند. این فصل توضیح می دهد چه اتفاقی می افتد هنگام مشت زدن یک آدرس وب به مرورگر خود و دریافت یک نتیجه. ما’در اینجا از فنی بودن زیاد خودداری کنید’نیازی به توضیح آجیل و پیچ و مهره نیست ، زیرا احتمالاً فقط شما را گیج می کند. در عوض ، توضیح جدیدی درباره چگونگی جمع شدن همه جنبه های مختلف توسعه وب و مصرف وب ایجاد خواهد شد و وب مورد نظر خود را می شناسید و دوست دارید. هدف اصلی این فصل این است که به شما آموزش دهیم که زبان برنامه نویسی مورد نظر شما (در این حالت ، PHP) در چه مرحله ای بازی می شود و کدام قسمت از درخواست رازآمیز وب روی آن تأثیر می گذارد.

اگر ملزومات وب را می شناسید و با اصطلاحات ذکر شده در پاراگراف قبلی آشنا هستید ، احساس راحتی کنید تا به فصل بعدی بروید.

مشتری و سرور

حتماً از اصطلاحات شنیده اید “برنامه نویسی سمت مشتری” و “برنامه نویسی سمت سرور,” حداقل در تبلیغات شغلی. در این بخش ، ما’قبل از جابجایی روی جزئیات ، آنها را به طور خلاصه توضیح خواهم داد.

مشتری چیست?

آ مشتری مرورگر وب شماست.

در زمینه وب ، در حالی که شما از نظر فنی مشتری متداول هستید
به معنای کلمه (شما درخواست کننده را انجام می دهید و توسط نرم افزار مورد استفاده قرار می گیرد) ، مرورگر در نظر گرفته شده است نرم افزار مشتری استفاده می شود از سرور چیزی بپرسید.

پس از دریافت آن “چیزی” (غالباً یک متن است) ، تصمیم می گیرد که چگونه باید آن را به شما ارائه دهد ، مشتری نهایی.

سرور چیست؟?

مشابه مشتری ، الف سرور همچنین دو معنی دارد:

  1. برنامه ای که به سؤالات مطرح شده توسط مشتری پاسخ می دهد
  2. یک کامپیوتر (یک ماشین فیزیکی) که روی آن برنامه سرور نصب شده است

در این کتاب و در زمینه توسعه وب ، عموما منظور ما از سابق است.

در حقیقت ، در طول این کتاب ، ما’یاد خواهیم گرفت که چگونه می توانیم به طور اساسی یک برنامه سرور را روی رایانه شخصی خود نصب کنیم “جعل اینترنت” و به رایانه اجازه می دهیم وب سایت ما را فکر کند’توسعه مجدد بصورت آنلاین و در دسترس همه است.

اجازه دهید’کمی بیشتر به نکته اول نگاه کنید: چگونه یک برنامه به سؤالات پاسخ می دهد?

به طور خلاصه ، یک سرور منتظر سوالی از قبیل “متن پست وبلاگ را به من بدهید
از 14 فوریه” و با هر دو پاسخ می دهد “خوب ، در اینجا: [برخی از HTML ، حاوی متن پست مورد نظر]” یا “ببخشید ، می توانم’اونو پیدا کن’هیچ چیزی زیر 14 فوریه.” مسلماً ، من’قابل مقایسه ، اما همین’کم و بیش آنچه اتفاق می افتد.

من’آن را در شکل 1.1 نشان داده است.

آناتومی درخواست های وب شکل 1.1. یک درخواست ساده به سرور و پاسخ آن

توسعه وب در واقع یک موضوع نسبتاً ساده است که باعث می شود مشتری سؤالات درست بپرسد ، و آموزش سرور برای پاسخ های صحیح است. آماده رفتن کمی عمیق تر به سوراخ خرگوش?
اینجا می رود …

مبانی درخواست وب

در حالی که درخواست وب معنای بسیار خاصی دارد ، اغلب به عنوان اصطلاح پتو برای ارتباط بین مشتری و سرور استفاده می شود. کل این روند ارتباطات به شکلی مرتب در شکل 1.2 ، یک طنز زیبا توسط VladStudio توضیح داده شده است.

آناتومی درخواست های وبشکل 1.2. چگونه اینترنت توسط VladStudio کار می کند

چگونه همه کار می کند

اجازه دهید’شکل طنز را در شکل 1.2 شکسته اید.

شما کاربر هستید – شما پادشاه هستید. شما دستورات را صادر می کنید و مرورگر با خوشحالی از آن پیروی می کند. به عنوان کاربر ، اینجاست که آگاهی شما از فرآیند به پایان می رسد و دفعه بعد شما’دوباره آگاهانه در قاب دوم تا آخر طنز است. کل روند موجود برای شما نامرئی است ، مگر در مواردی که شما هستید’یک توسعه دهنده هستید سپس شما’یک پادشاه جادوگر جادویی هستم که می تواند همه چیز را ببیند’اتفاق می افتد ، اما بیشتر در مورد این در فصل های بعدی.

مرورگر از یک فایروال عبور می کند ، که معمولاً به صورت مجاز انجام می شود. احتمالاً همین حالا یا در روتر / مودم خود به نوعی فایروال را در رایانه خود دارید. مرورگر می داند که چگونه از آن عبور کند زیرا شما’به نگهبان گفتم مرورگر اشکالی ندارد و باید از طریق آن امتحان شود.

سپس بخشی از ما می آید’هنوز ذکر نشده است: DNS (سیستم نام دامنه) سرورها – بخشی که بسیار عرفانی و غیرقابل دسترسی است ، اکثریت قریب به اتفاق کاربران اینترنت (و توسعه دهندگان حتی!) آن را بصورت کامل تصور می کنند ، بپذیرند که وجود دارد و سعی کنید بیش از حد نگران آن نباشید. به نظر می رسد که اجماع عمومی این است که ، مانند سؤالاتی درباره معنای زندگی ، سؤالاتی درباره منشاء زمان و مکان و همچنین خوشمزه بودن دنیای کره بادام زمینی و موز دسته کوچک موز ، برخی موارد – از جمله منشا و هدف سرورهای DNS – است. بهتر بدون تردید باقی مانده است اگر هنوز دوست دارید بدانید که چه هستند ، در بخش موسوم به آنها توضیح داده می شود “برای کسانی که بیشتر می خواهند” در پایان این فصل با جزئیات بیشتر.

به طور خلاصه ، این نحوه عملکرد آنهاست. همه دامنه در اینترنت (مانند “مثال.com”) به یک آدرس IP خاص وصل شده است (که توسط شماره های نشانگر در قاب سوم کمیک نشان داده شده است). یک آدرس آی پی مجموعه اعدادی است که یک سرور مشخص را شناسایی می کند. آدرسهای IP به مرورگر می گویند که چگونه به اینترنت بروید
کامپیوتر (سرور) آن را پیدا کنید’در جستجوی.

طول و عرض جغرافیایی را از کلاسهای جغرافیا به خاطر دارید؟ آنها به طور خاص یک نقطه جغرافیایی را بر روی سیاره زمین تعریف می کنند ، و سازگار با کشور متقابل هستند ، به این معنی که هرکسی از هرجایی می داند که اگر به آنها مقدار عرض جغرافیایی و طول جغرافیایی را بدهد ، چگونه می توانند یک مکان را پیدا کنند. با این حال ، ما همچنین برای محبوب ترین مختصات توضیحات دوستانه انسانی داریم.

به عنوان مثال ، نام شهری که من در آن دانشگاه رفتم ریژکا است. بسیاری از مردم نمی دانند کجا می توانند آن را بر روی نقشه پیدا کنند ، اما اگر مختصات را به آنها بدهم (45.3167 ° N ، 14.4167 ° E) ، 2 می توانند به راحتی آن را پیدا کنند. سرور DNS یک مترجم ، یک راهنما است. این سرور می داند کدام آدرس های IP با کدام نام دامنه مطابقت دارد و به مرورگر می گوید که در کجا بعدی قرار گیرد.

هنگامی که به یک آدرس IP خاص هدایت شد ، مرورگر روی درب سرور میزبان را می کوبد. این سرور خاص در بخش قبلی ذکر شد و ما فقط به آن اشاره می کنیم “سرور.” مرورگر اطلاعاتی را که کاربر درخواست کرده است با خود به همراه آورده و از سرور می خواهد پاسخی برای این سؤال بدهد “google.com?”

سرور پاسخ می دهد: “بله ، تحت google.com ، پرونده می گوید …” و جواب می دهد مرورگر به کاربر (پادشاه) برمی گردد و اطلاعات را منتقل می کند. این بخش همان چیزی است که’برای ما توسعه دهندگان مهم است – به سرور می گوییم چه پاسخی برای یک سوال خاص می دهد. این قسمت را بخاطر بسپار.

جلویی و برگشتی

آی تی’زمان لازم برای تعریف دو اصطلاح دیگر که حداقل باید یک بار شنیده اید. توسعه جلویی (همچنین به نام توسعه سمت مشتری) متمرکز بر کار با نرم افزار مشتری است ، در حالی که توسعه عقب (همچنین به نام توسعه سمت سرور نامیده می شود) با نرم افزار سرور سروکار دارد.

هنگامی که یک سرور متن را به مرورگر شما باز می گرداند (در شکل 1.2 ، این متنی است که می باشد’تکرار شده در پادشاه در قاب دوم تا آخر) و مرورگر شما آن را به شما ارائه می دهد ، چگونه متن آن به نظر می رسد و از چه طریق می توانید با آن تعامل داشته باشید جلویی (یا سمت مشتری) است.
برنامه نويسي. وقتی یک وب سایت باز می کنید و یک پیوند جسورانه و رنگی متفاوت با بقیه متن داشته باشد ، آن تغییر در ظاهر با برنامه نویسی سمت مشتری (HTML به علاوه CSS) حاصل می شود. وقتی می توانید یک عنصر را روی صفحه بکشید یا انیمیشن ها یا صداها را شروع کنید ، آن را بکشید’همچنین با برنامه نویسی سمت مشتری به دست آمده است (به طور خاص HTML و CSS همراه با JavaScript).

برنامه نویسی سمت سرور ، یا توسعه back-end ، عملی برای پیکربندی کامپیوتر و برنامه سرور است (به بخش تحت عنوان مراجعه کنید “سرور چیست؟?” برای توضیح در مورد این دوگانگی) برای بازگرداندن داده های مناسب در هنگام سؤال به مرورگر. این به طور معمول به معنای برنامه نویسی به زبان سرور مانند PHP است. PHP برخی محاسبات را انجام داده یا برخی از داده ها را از یک پایگاه داده می گیرد ، و آن را تبدیل می کند
متنی که می تواند به مرورگر داده شود و مرورگر آن را بگیرد و آن را به کاربر نمایش دهد.

حتی اگر کلیه مطالب برگشت داده شده برای مرورگر به مرورگر بر روی سرور ذخیره شود ، ما به CSS و JavaScript فراخوانی می کنیم “طرف مشتری” زیرا محاسبات آنها در مرورگر اتفاق می افتد. به عنوان مثال ، اگر به جاوا اسکریپت گفتم که یک مربع را به یک دایره تبدیل کنید ، ریاضی پشت محاسبه در مرورگر اتفاق می افتد. سرور فقط فرمول را ارائه می دهد و به مرورگر می گوید: “وقتی این را به پادشاه خود برگردانید ، اینگونه بگویید …” از طرف دیگر ، برنامه نویسی سمت سرور دلالت بر این دارد که تمام منطق ، محاسبات ، فرمول ها و مواردی از این دست روی سرور اتفاق می افتد و صرفاً نتیجه نهایی را برمی گرداند. به عنوان مثال ، اگر من یک وب سایت داشته باشم که تعداد تصاویر بارگذاری شده توسط یک کاربر را شمارش کند (مانند فیس بوک که تعداد تصاویر موجود در آلبوم شما را شمارش می کند) ، این محاسبه بر روی سرور انجام می شود و فقط شماره نهایی به آن داده می شود مرورگر وقتی این اطلاعات را می پرسد.

برای recap: front end هنگام نوشتن کدی است که در مرورگر اجرا می شود (HTML ، CSS ، JavaScript) ، در حالی که back end هنگام نوشتن کدی است که قبل از ارسال نتیجه نهایی بر روی سرور اجرا می شود. PHP ، جاوا اسکریپت سمت سرور ، دارت سمت ، روبی ، پایتون و سایر زبان های برنامه نویسی متناسب با این لایحه هستند.

زمان آن است که حتی بیشتر به سوراخ خرگوش برویم.

زبانهای سمت سرور

این کتاب بر تهیه محیط توسعه برای برنامه نویسی سمت سرور متمرکز است. ما بردیم’با HTML ، CSS یا JavaScript سر و کار دارید. کتاب های زیادی در آنجا وجود دارد ، و راه اندازی یک جریان توسعه از طرف مشتری به تنهایی پیچیده است. در عوض ، ما’من به طور انحصاری با مقدمات سرور سر و کار خواهیم داشت’شروع کردن به روش اشتباه بسیار آسان است. همانطور که یک نقطه روی یک بادکنک با پر شدن از هوا به لکه بزرگی تبدیل می شود ، همینطور می تواند یک اشتباه در ابتدای کار برنامه نویسی را به یک عادت مضر طولانی مدت تبدیل کند..

همانطور که قبلاً می دانید ، نمونه هایی از زبان های سمت سرور شامل PHP ، Ruby و Python است. آنها به عنوان برنامه هایی روی رایانه سرور و همچنین برنامه سرور قرار می گیرند. این زبانها دستورات خاصی را از برنامه سرور می گیرند و نتیجه این دستورات را به آن باز می گردانند. این خروجی است که کاربر هنگام درخواست یک سوال خاص ، به مرورگر داده می شود. به طور خلاصه ، با گفتن
سرور “وقتی درخواستی برای وب سایت shembull.com وارد شد ، این پرونده را از طریق PHP اجرا کنید”:

زبانهای سمت سرور

… ما به آن راهی داده ایم که بتوانیم پاسخی را برای مشتری ارائه دهیم. سپس فایل PHP اجرا می شود و محتوا “سلام دنیا” ایجاد شده و به برنامه سرور ارسال می شود ، که به مرورگر داده می شود. مرورگر آن را به کاربر باز می گرداند و به سادگی تکرار می کند “سلام دنیا.” مرورگر متوقف نمی شود که بقیه محتویات پرونده را دوباره انتقال دهد. برچسب php <?php و کلمه کلیدی echo در خروجی رد می شوند. دلیل این است که برچسب <?php به سرور می گوید “این فایل را از طریق PHP اجرا کنید” و سپس ، هنگام اجرای پرونده از طریق PHP ، echo آن را می گوید “عبارت زیر را روی صفحه نمایش دهید.”

اگر شما’در درک این مسئله مشکل دارید ، به شکل 1.3 مراجعه کنید که در شکل 1.1 گسترش می یابد.

زبانهای سمت سرورشکل 1.3. سرور در صورت جواب از PHP می پرسد’قادر به پیدا کردن یکی نیست

در شکل 1.3:

■ digram نمایانگر رایانه های فیزیکی در شکل 1.1 است
■ Nginx یک برنامه سرور وب است که روی این دستگاه نصب شده است
■ Nginx در قالب یک سؤال از مشتری دریافت می کند (وبلاگ برای 14 فوریه)
■ Nginx در صورت وجود بررسی می کند’یک صفحه برای وبلاگ / feb / 14
■ از آنجا که هیچ کدام وجود ندارد ، Nginx مسیرها را به سمت فایلهای PHP بررسی می کند
■ Nginx می یابد که برای اجرای اسکریپت blog.php از طریق PHP نیاز دارد
script اسکریپت blog.php به بانک اطلاعاتی متصل می شود و متن را برای تاریخ معین ارسال می کند
■ موتور PHP این نتیجه را به سرور می فرستد
■ Nginx آن را به مشتری ارسال می کند

برای recap: PHP یک مولد پاسخ برای سرور است بنابراین می داند چه پاسخ هایی را باید به مرورگر بدهد’سوالات به این ترتیب ، سرور نمی کند’باید پاسخ ها را بدانید ، فقط می داند که PHP این کار را می کند و از آن می پرسد ، سپس پاسخ را به مرورگر ارسال می کند. تصور کنید یک “سلام نام شما” صفحه؛ آی تی’تولید صفحات برای هر نام موجود غیرممکن است ، اما ما می توانیم PHP را بخواهیم که در یک صفحه نام ببرد و بعد از آن
پاسخی را برای دادن به سرور در صفحه دیگر ایجاد کنید.

چی’مهم است که درک کنیم جریان ارتباطی بین مشتری و سرور و سرور و زبان سمت سرور است. این کل ارتباطات در طنز در شکل 1.2 به قاب های پنجم و ششم قرار می گیرد. در واقع ، بخشی که برنامه سرور با برنامه PHP در آن صحبت می کند ، کاملاً در قاب ششم اتفاق می افتد.

تولید پاسخ با زبانهای سمت سرور

آخرین و عمیق ترین سطح سوراخ خرگوش ما مکالمه واقعی بین برنامه سرور و یک زبان سمت سرور است – در مورد ما (و همه موارد آینده) ، PHP. ما این موضوع را تا حدودی در بخش قبلی پوشش دادیم اما بگذارید’اکنون به یک مثال دیگر نگاه می کنیم با این وضعیت که پاسخی پیدا نمی شود.

اجازه دهید’s می گویند که سرور از مشتری خواسته شده است: “آیا می توانید هر آنچه را که در این زمینه ثبت کرده اید ، مرا به من بدهید مثال.com/user/id/54?” این اتفاقی است که در آینده می افتد:

  1. سرور بررسی می کند که آیا وجود دارد’چیزی که قبلاً زیر مسیر تهیه شده است: / user / id / 54. اگر هیچ فایلی برای یافتن آنجا وجود ندارد ، آن را پیدا می کند’پیکربندی شده است که از PHP بپرسید.
  2. سرور از PHP سؤال می کند: “سلام ، آیا می توانید زیر چیزی پیدا کنید / کاربر / شناسه / 54?”
  3. PHP مسیرهای خود را فعال کرده و به نظر می رسد. و ببین ، مسیر / کاربر / شناسه / 54 می گوید “با استفاده از شناسه پارامتر مقدار 54 ، پرونده user.php را فعال کنید.”
  4. PHP پرونده را اجرا می کند (منطق واقعی پرونده در کنار نقطه و خارج از محدوده این فصل است) و نتیجه را دریافت می کند. شاید نتیجه آن آدرس ایمیل کاربر 54th در پایگاه داده باشد. این آدرس ایمیل به سرور داده می شود: “مطمئنا ، من چیزی را در آن مسیر پیدا کردم. پاسخ این است: [email protected]”.
  5. سرور با پاسخ می دهد “با تشکر!” و این پیام را به مشتری منتقل می کند ، که سپس آن را به کاربر نهایی ارائه می دهد – شما.

با این حال ، اگر وجود دارد چه می شود’هیچ چیزی تحت آن مسیر ثبت نشده است؟ به عنوان مثال ، یک درخواست تایپ در هنگام درخواست مشتری وجود دارد مثال.com/urer/id/54 (به جای “کاربر”) اینجا’چه اتفاقی می افتد:

  1. سرور بررسی می کند که آیا وجود دارد’هر چیزی که قبلاً زیر مسیر تهیه شده است: / urer / id / 54. اگر هیچ پرونده ای یافت نشد ،’پیکربندی شده است که از PHP بپرسید.
  2. سرور از PHP سؤال می کند: “آیا می توانید هر چیزی را در زیر پیدا کنید / urer / id / 54?”
  3. PHP مسیرهای خود را فعال کرده و به نظر می رسد ، اما نتواند چیزی را کشف کند. برمی گرداند “404 صفحه یافت نشد” خطا در سرور (مانند شکل 1.1 ، نتیجه سمت چپ). همانطور که به احتمال زیاد آگاه هستید ، 404 کدی است که در فن آوری های وب رایج است و به این معنی است که آنچه شما به دنبال آن هستید قادر به یافتن جایی نیست که فکر می کنید ممکن است باشد. بسیاری از چنین کد وضعیتی وجود دارد ، اما نیازی به شناختن همه آنها در این مرحله از حرفه شما نیست.
  4. سرور پیام 404 را دریافت می کند و فکر می کند “هوم ، پی اچ پی موفق شد. خوب ، این هیچی ندارد ، من هیچی ندارم ، بهتر است صفحه را به مشتری برگردانیم که می گوید ما ناموفق بودیم.” سپس به مرورگر یک صفحه 404 داده می شود ، که معمولاً فقط یک هشدار متنی مانند است “خوب ، شما یک پیوند اشتباه را امتحان کردید!” اما می تواند به همان اندازه پیچیده ای باشد که شما می خواهید.

من اطمینان دارم که این فصل با مفاهیمی که ارائه کرد روشن بود و به شما در رسیدن به آن کمک می کرد
یاطاقان خود را از نظر مکانی که شما در برنامه بزرگ PHP قرار دارید (یا خواهید بود)
برنامه نويسي. در بخش بعدی ، شما’اطلاعات فنی دیگری پیدا خواهید کرد
در درخواست های وب و سرورهای DNS.

برای کسانی که بیشتر می خواهند

سرورهای DNS

همانطور که قبلاً ذکر شد ، هر دامنه (مانند مثال.com) در اینترنت محدود به یک آدرس IP خاص (مانند 93.184.216.34) است. آدرس IP مجموعه ای از اعداد است که یک سرور معین را شناسایی می کند. به عبارت دیگر ، آدرسهای IP به مرورگر می گویند که چگونه از طریق اینترنت حرکت کند تا رایانه (سرور) مورد نظر خود را پیدا کند. یک سرور DNS (همچنین به عنوان سرور فقط با نام شناخته می شود) می داند که آدرس های IP با کدام نام دامنه مطابقت دارند و به مرورگر می گوید که کجا بروید.

هنگامی که می خواهید دریابید که کدام آدرس IP با یک نام دامنه مطابقت دارد ، ابتدا مرورگر خاص خود را بررسی می کند حافظه نهانلیستی از دامنه های بازدید شده قبلی را ذخیره کرد. هر مرورگر این لیست را حفظ کرده و مرتباً آن را تازه می کند. اگر ترکیب دامنه-IP را در حافظه نهان خود پیدا کند ، سایت سریعتر بار می رود زیرا در آنجا قرار دارد’دیگر نیازی به درخواست سرور DNS برای آن نیست. اگر دامنه نیست’در حافظه پنهان ، مرورگر از برنامه ای به نام “” درخواست می کند حل کننده (که در سیستم عامل شما ساخته شده است) برای بررسی پرونده هاست ها روی رایانه آن’نصب شده است. پرونده میزبان ها جایی است که کاربر می تواند نقشه های وب سایت را به کدام آدرس IP تعریف کند. (ما’در فصلهای بعدی می آموزیم که از این پرونده استفاده کنید.) اگر اطلاعات لازم موجود نیست’در آنجا ، حافظه نهان DNS روی روتر (روترها معمولاً دارای یک مورد نیز هستند) بررسی می شود و در صورت وجود’شرکت ISP در آنجا یافت نشد’از سرور DNS پرسیده می شود.

تا آخرین مرحله ، همه چیز روی رایانه شخصی شما اتفاق می افتاد یا همانطور که می گوییم محلی است. حالا که’زمان بازدید از ISP ، آن است’دیگر یک موضوع محلی نیست’از راه دور اگر ISP’سرور DNS بدون سابقه ای برای دامنه است ، آنرا می یابد و به مرورگر می گوید ، سپس نتایج را برای نمایش داده های بعدی ذخیره می کند. چگونه می فهمد؟ نام دامنه را از راست به چپ جدا می کند.

www.example.com به قطعات تقسیم شده است. قسمت .com ، به نام TLD یا دامنه tovelvel, اول است سرورهای DNS بسیاری در سراسر جهان وجود دارند ، که اغلب به گونه ای تنظیم شده اند که چندین رایانه به عنوان یک عمل کنند. به این ترتیب که اگر یک نفر درگذشت ، دیگران اطمینان حاصل می کنند که خدمات بدون وقفه است. بالاترین سطح این سرورها هستند سرورهای root, که می دانند برای یافتن اطلاعات بیشتر در مورد دامنه در هر TLD داده شده ، کجا را جستجو کنید. سرور روت با سوابق مناسب برای .com می داند که این یک dot com است ، بنابراین یک سؤال را در XYZ ― XYZ به عنوان سرور دیگری برای نام ارسال می کند که قسمت نمونه را می شناسد. علاوه بر این ، قسمت www (همچنین با عنوان شناخته می شود) زیر دامنه) در این زنجیره گیج کننده از نام ها و سرورها ، در یک سرور نام خاص ثبت می شود. هنگامی که تمام قطعات (همچنین به عنوان برچسب شناخته می شوند: .com ، مثال و www) در یک آدرس IP حل می شوند ، نتیجه بازگردانده می شود.

اگر شما’d دوست دارم درباره سرورهای نام root اطلاعات بیشتری کسب کنید و می خواهید بدانید که کل اینترنت چگونه است’عملکرد صاف به سیزده رایانه اصلی بستگی دارد (خب ، خوشه های رایانه ها) ، به صفحه سرور نام ریشه در ویکی پدیا نگاه کنید ، یا پاسخ های شگفت آور فراگیر در سوپر کاربر را بررسی کنید..

چه اتفاقی می افتد هنگام تایپ …

یک سؤال متداول مصاحبه شغلی برنامه نویس است “چه اتفاقی می افتد وقتی که google.com را در مرورگر خود تایپ می کنید’جعبه آدرس و مطبوعات enter?” در حالی که ، ما بخشی از این را قبلاً توضیح دادیم (البته به روش ساده) ، الکس گینور را بررسی کنید’توضیحات عالی در صورت شما’د دوست دارم از جزئیات دقیق ، از سخت افزار گرفته تا نرم افزار نهایی مطلع شوید. آی تی’پستی بسیار جامع اما کاملاً نوشته شده است. توجه داشته باشید که در واقع ، این سطح از دانش تفصیلی نیازی به توسعه دهنده خوب نیست.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me