سرویس گیرنده وب چگونه عمل می کند؟
تا به حال به مکانیزمی که این صفحه را به شما نمایش می دهد فکر کرده اید؟ پشت صحنه چه اتفاق هایی می افتد تا این صفحه بر روی نمایشگر شما ظاهر می شود؟ اما سرویس گیرنده وب چیست ؟
مقدمه سرویس گیرنده چیست ؟
تا به حال به مکانیزمی که این صفحه را به شما نمایش می دهد فکر کرده اید؟ پشت صحنه چه اتفاق هایی می افتد تا این صفحه بر روی نمایشگر شما ظاهر می شود؟
اگر در این خصوص کنجکاو باشید و بخواهید مکانیزم های خاصی که به شما اجازه وبگردی در اینترنت می دهد را بشناسید، خواندن این مقاله را به شما توصیه می کنیم. در این مقاله شما یاد می گیرید که چگونه سرویس دهنده وب این صفحات را به خانه، مدرسه یا اداره شما می آورد؟ پس بیایید شروع کنیم.
مراحل پایه سرویس گیرنده وب
بیایید فرض کنیم شما پشت کامپیوتر خود نشسته و به وب گردی مشغول هستید، در همین حال دوستتان با شما تماس میگیرد و به شما می گوید:” من به تازگی با یک میزبان حرفه ای وب سایت در آدرس : www.iranhost.com/webhosting/default.aspx آشنا شده ام. بنابراین شما این URL را در مرورگر خود تایپ می کنید و کلید Enter را فشار می دهید. و به طور معجزه آسایی بدون اینکه بدانید این URL در کجای دنیا وجود دارد، ناگهان بر روی صفحه نمایشگر شما ظاهر می شود.
در ساده ترین حالت ممکن، دیاگرام روبرو مراحل ظاهر شدن آن صفحه را به شما نشان می دهد. مرورگر شما یک ارتباط با سرویس دهنده وب ایجاد می کند، یک صفحه را درخواست می کند و آن را دریافت می کند.
بیایید جزئیات بیشنری در خصوص این که چگونه صفحه وب بر روی نمایشگر شما ظاهر می شود بدانیم، اینها مراحلی است که در پشت صحنه اتفاق می افتد.
مرورگر URL را به سه بخش تقسیم می کند!
* پروتکل (“http”)
* نام سرویس دهنده (www.iranhost.com)
* نام فایل (“default.aspx”)
مرورگر با یک سرویس دهنده نام گفتگو می کند تا نشانی www.iranhost.com را به نشانی IP ترجمه کند تا از آن برای ارتباط با ماشین سرویس دهنده استفاده کند. سپس مرورگر یک ارتباط با سرویس دهنده از طریق IP و پورت ۸۰ ایجاد می کند.(بعدا در همین مقاله در خصوص پورت صحبت می کنیم.)
براساس پروتکل HTTP مرورگر یک درخواست GET به سرویس دهنده ارسال می کند سپس فایل default.aspx را درخواست می کند. (توجه داشته باشید که ممکن است که cookieها همراه درخواست GET از مرورگر به سرویس دهنده ارسال شوند.) سپس سرویس دهنده فایل متنی HTML مربوط به آن صفحه web را برای مرورگر ارسال می کند.(ممکن است cookieها هم در header صفحه از سرویس دهنده به مرورگر ارسال شوند.)
اگر تاکنون در این خصوص مطالعه نداشته اید ممکن است لغات بسیاری برای شما جدید به نظر بیایند. برای درک جزئیات این پروسه بیایید کمی بیشتر درباره نشانی های IP، Portها , Protocolها بدانیم.
اینترنت
مجموعه ای غول پیکر از میلیون ها کامپیوتر، که همگی در یک شبکه به هم متصل شده اند. شبکه امکان می دهد تا همه کامپیوترها با هم ارتباط داشته باشند. یک کامپیوتر خانگی ممکن است به واسطه یک phone-line modem یا DSL به ارائه دهنده سرویس اینترنت (ISP) وصل سپس از آنجا به اینترنت بپیوندد. همچنین یک کامپیوتر در دانشگاه یا یک محل تجاری به وسیله یک کارت واسط شبکه (NIC) که به شبکه محلی(LAN) متصل است از طریق خطوط اینترنت سرعت بالا همچون خطوط T1 به ISP وصل می شود. یک خط T1 قابلیت انتقال تقریبا ۱.۵میلیون بیت در ثانیه را دارد این در حالی است که یک خط معمولی که از مودم استفاده می کند، ۳۰۰۰۰ تا ۵۰۰۰۰ بیت در ثانیه را انتقال می دهد.
ISPها به ISPهای بزرگتر متصل می شوند. ISPهای بزرگ از backboneهای فیبرنوری برای ارتباط بین مناطق و کشورها استفاده می کنند. Backboneها در سرتاسر دنیا از طریق خطوط فیبرنوری، کابلهای زیر دریا و یا ارتباط های ماهواره ای به هم متصل شده اند. بدین ترتیب هر کامپیوتری در اینترنت به هر کامپیوتر دیگری در این شبکه عظیم متصل می شود.
[irp posts=”۶۵۰۹″ name=”اینترنت چیست و چگونه کار میکند | هر آنچه بایستی در مورد زیرساخت اینترنت بدانید”]
سرویس گیرندگان و سرویس دهندگان
در حالت کلی تمام ماشین های داخل اینترنت در دو گروه دسته بندی می شوند: سرویس دهندگان (servers) و سرویس گیرندگان(client). ماشینهایی که به سایر ماشین ها سرویس(مثل سرویس وب یا سرویس FTP) ارائه می دهند، سرویس دهنده و ماشین هایی که برای استفاده از سرویس ها به آنها متصل می شوند سرویس گیرنده هستند. وقتی شما از طریق www.yahoo.com به Yahoo! متصل می شوید تا صفحه وب آن را بازدید کنید، Yahoo! ماشینی(تقریبا گروهی از ماشینهای خیلی بزرگ) را بر روی اینترنت تهیه دیده تا به درخواست شما پاسخ دهند. Yahoo! یک سرویس دهنده تهیه دیده است. به عبارت دیگر ماشین شما شاید هیچ سرویسی به شخص دیگری در اینترنت ارائه نمی دهد. بنابراین ماشین شما یک ماشین کاربری است که با عنوان سرویس گیرنده شناخته می شود. امکان دارد و معمول است که یک ماشین هم سرویس دهنده و هم سرویس گیرنده باشد اما برای مقصود ما در این جا شما در نظر بگیرید که ماشین ها تنها یک وظیفه دارند.
یک ماشین سرویس دهنده ممکن است یک یا چند سرویس در اینترنت ارائه دهد. برای مثال ممکن است بر روی یک ماشین سرویس دهنده نرم افزارهایی در حال اجرا باشند که به آن امکان فعالیت به عنوان سرویس دهنده وب، سرویس دهنده ایمیل و سرویس دهنده FTP را بدهد. سرویس گیرندگان به یک منظور مشخص به یک ماشین سرویس دهنده متصل می شوند بنابراین درخواست خود را به یک نرم افزار مشخص در حال اجرا بر روی تمامی سرویس دهندگان ارائه می دهند. برای مثال، اگر یک مرورگر وب بر روی ماشین شما در حال احرا باشد به احتمال زیاد مرورگر می خواهد با یک سرویس دهنده وب بر روی ماشین سرویس دهنده گفتگو کند همین طور سرویس گیرنده Telnet تمایل دارد تا با سرویس دهنده Telnet و سرویس گیرنده email شما با سرویس دهنده ایمیل گفتگو خواهد کرد و به همین ترتیب…
نشانی های IP
برای شناسایی و مدیریت ماشین ها در اینترنت، به هر ماشین یک نشانی منحصر به فرد اختصاص داده شده است که به IP معروف است. IP مخفف Internet Protocol است. این نشانی ها اعداد ۳۲بیتی هستند که به طور معمول در ۴ octet به صورت اعداد دهدهی و با یک نقطه در میانشان بیان می شوند. یک نشانی IP چیزی شبیه به این می باشد: ۲۱۶.۲۷.۶۱.۱۳۷
این ۴ عدد در یک نشانی IP به octet معروفند چرا که آنها می توانند مقادیری از ۰ تا ۲۵۵ داشته باشند که ۲به توان ۸ امکان را در یک octet ایجاد می کنند.
هر ماشینی در اینترنت یک نشانی IP منحصر به فرد دارد و یک سرویس دهنده یک نشانی static IP دارد که غالبا تغییر نمی کند. یک ماشین خانگی که به وسیله یک مودم در حال شماره گیری است، یک نشانی IP دارد که ISP در زمان اتصال، به آن اختصاص می دهد. این نشانی IP تنها تا انتهای برقراری این ارتباط، منحصر به فرد است(امکان دارد در اتصال بعدی این نشانی متفاوت باشد.)
اگر در حال استفاده از یک ماشین تحت سیستم عامل Windows باشید، با وارد کردن دستور IPCONFIG.EXE اطلاعات اینترنتی بسیاری را در خصوص ماشینتان می بینید که شامل نشانی IP کنونی نیز می باشد. در یک ماشین تحت سیستم عامل UNIX دستور nslookup را به همراه نام یک ماشین مثل www.iranhost.com وارد کنید تا نشانی IP آن ماشین را ببنید.
نام های دامنه
از آنجایی به خاطر آوردن رشته های عددی IP مشکل است و از آنجا که گاهی نیاز است تا نشانی های IP تغییر کنند، همه سرویس دهنده های داخل اینترنت علاوه بر نشانی IP یک نام قابل خواندن نیز دارند که به نام دامنه معروف است. برای مثال www.iranhost.com یک نام ثابت و قابل خواندن است و برای اکثریت ما به خاطر آوردن www.iranhost.com خیلی راحت تر از به خاطر آوردن ۲۰۹.۱۱۶.۶۹.۶۶ است.
نام www.iranhost.com در واقع از سه بخش تشکیل شده است:
- نام میزبانی
- نام دامنه
- نام دامنه سطح بالا
به هنگام ثبت دامنه com به یاد داشته باشید نام های دامنه “.com” توسط ثبت کننده(registrar) Verisign مدیریت می شوند. Verisign همچنین نام های دامنه “.net” را نیز مدیریت می کند. دیگر ثبت کننده ها(همچون RegistryPro، NeuLevel و Public Interest Registry) دیگر دامنه ها را مدیریت می کنند.(همچون .pro، .biz و .org). Verisign نام دامنه های سطح بالا را ایجاد می کند و تضمین می کند که تمام نام ها در یک دامنه سطح بالا منحصر به فرد هستند. همچنین اطلاعات تماس هر وبسایت را نگهداری می کند و پایگاه داده “whois” را دایر می کند. نام میزبانی توسط شرکتی که از دامنه میزبانی می کند ایجاد می شود. نام میزبانی “www” یک نام بسیار معمول است اما گاهی آن را حذف یا با یک نام میزبانی متفاوت که ناحیه مشخصی از وبسایت را مشخص می کند جایگزین می کنند. برای مثال Encarta.msn.com(نام دامنه دانشنامه Microsoft’s Encarta می باشد.) که در آن “Encarta” به عنوان نام میزبانی به جای “www” تعیین شده است.
در ماشین های تحت UNIX شما می توانید از دستور whois برای جستجوی اطلاعات یک نام دامنه استفاده کنید. شما می توانید همین اطلاعات را از طریق فرم whois در Verisign بدست آورید. اگر یک نام دامنه مثل “iranhost.com” را وارد کنید به شما اطلاعات ثبت دامنه به همراه نشانی IP آن را برمی گرداند.
سرویس دهندگان نام
یک مجموعه از سرویس دهندگانی که به سرویس دهندگان نام دامنه ( DNS ) معروف هستند نام های قابل خواندن را به نشانی های IP مربوط می کنند. این سرویس دهندگان پایگاه داده های ساده ای هستند که نام ها را به نشانی های IP مربوط می کنند، این سرویس دهندگان در سرتاسر اینترنت توزیع شده اند. بسیاری از شرکت های مستقل، ISPها و دانشگاه ها سرویس دهندگان نام کوچکی را برپا می سارند تا نام های میزبانی را به نشانی های IP مربوط کنند. همچنین سرویس دهندگان نام مرکزی نیز وجود دارند که از اطلاعات فراهم شده توسط Versign برای مربوط کردن نام دامنه ها به نشانی های IP استفاده می کنند.
اگر شما www.iranhost.com/default.aspx را در مرورگر خود وارد کنید، مرورگر نام “www.iranhost.com” را استخراج کرده به سرویس دهنده نام دامنه می فرستد، سرویس دهنده نام دامنه نیز نشانی IP مربوط به www.iranhost.com را برمی گرداند. ممکن است تعدادی از سرویس دهندگان نام، درگیر یافتن نشانی IP مربوطه شوند. برای مثال در خصوص www.iranhost.com سرویس دهنده نام دامنه سطح بالای “com” از نشانی IP سرویس دهنده ای که نام دامنه را می داند، مطلع است و درخواست دیگری را به آن سرویس دهنده نام می فرستد و آن سرویس دهنده نشانی IP مربوط به ماشین سرویس دهنده مربوط به www.iranhost.com را تحویل می دهد.
برای آشنایی با مفهوم dns می توانید مقاله دی ان اس چیست را مطالعه کنید.
پورت
هر ماشین سرویس دهنده ای، سرویس های خود را تحت یک شماره پورت در دسترس کاربران اینترنت قرار می دهد، به ازای هر سرویس قابل ارائه یک شماره پورت. برای مثال اگر یک ماشین سرویس دهنده به عنوان سرویس دهنده وب و سرویس دهنده پروتکل انتقال فایل عمل کند، سرویس وب از طریق پورت ۸۰ و سرویس FTP از طریق پورت ۲۱ در دسترس خواهند بود. سرویس گیرندگان به هر سرویس تحت نشانی IP مشخص و شماره پورت مشخص متصل می شوند.
هر یک از معروف ترین سرویس ها از طریق یک پورت مشخص در دسترس هستند. در اینجا تعدادی از پورت های عمومی آمده است:
[pre] Echo: 7 Daytime: 13 Qotd: 17 (Quote of the Day) ftp: 21 telnet: ۲۳ smtp: 25 (Simple Mail Transfer, meaning e-mail) time: 37 nameserver: 53 nickname: 43 (Who Is) gopher: 70 finger: 79 www: 80 [/pre]
اگر ماشین سرویس دهنده پذیرای ارتباطهای روی یک پورت از دنیای بیرون باشد، و اگر یک Firewall از آن پورت مرافبت نکند، شما می توانید به آن پورت از هر جایی در اینترنت متصل شوید و از سرویس آن بهره مند شوید. توجه داشته باشید که هیچ اجباری وجود ندارد که مثلا سرویس دهنده وب بر روی پورت ۸۰ باشد. اگر شما ماشین خودتان را راه اندازی کنید و نرم افزار سرویس دهنده وب را بر روی آن اجرا کنید، شما می توانید پورت سرویس دهنده وب را بر روی ۹۱۸ یا هر پورتی که استفاده نمی شود تنظیم کنید. سپس اگر ماشین شما به عنوان xxx.yyy.com شناخته شود، هر شخصی در اینترنت می تواند به سرویس دهنده شما با استفاده از نشانی http://xxx.yyy.com:918 وصل شود. “:۹۱۸” به طور مشخص شماره پورت را تعیین می کند و هر شخصی می بایست آن را در انتهای URL ذکر کند تا به سرویس دهنده شما متصل شود. در صورتی که پورت مشخص نشود، مرورگر فرض می کند که سرویس دهنده از پورت معروف ۸۰ استفاده می کند.
[irp posts=”۱۳۹۵۶″ name=”دیوار آتش یا فایروال چیست و هر آنچه بایستی در مورد مزایا و معایب انواع فایروال ها بدانید”]
پروتکل
زمانی که یک سرویس گیرنده از طریق یک پورت مشخص به سرویس دهنده متصل شده است، از طریق یک پروتکل تعیین شده به سرویس دسترسی دارد. پروتکل یک روش از پیش تعریف شده گفتگو، برای هر کسی است که می خواهد از یک سرویس دهنده بهره مند شود. “هر کسی” می تواند یک شخص و یا اکثر اوقات یک برنامه کامپیوتری مثل مرورگر وب باشد. پروتکل ها غالبا متنی هستند و به صورت ساده توصیف می کنند که چگونه سرویس دهنده و سرویس گیرنده با یکدیگر گفتگو کنند.
شاید ساده ترین پروتکل، پروتکل Daytime باشد. اگر شما به پورت ۱۳ یک ماشین که سرویس دهنده daytime بر روی آن در حال اجراست، متصل شوید، سرویس دهنده به شما تاریخ و زمان را اعلام کرده و ارتباط را قطع می کند. پروتکل آن به این صورت است: “اگر شما به من متصل شدید، من به شما تاریخ و زمان را ارسال خواهم کردو سپس ارتباط را قطع خواهم کرد.” اکثر ماشین های تحت سیستم عامل UNIX این سرویس را ارائه می دهند. اگر مایل هستید آن را امتحان کنید می توانید به یکی از آنها با استفاده از برنامه Telnet متصل شوید. در UNIX، نتیجه به این صورت خواهد بود:
%telnet web67.ntx.net 13Trying 216.27.61.137…Connected to web67.ntx.net.Escape character is ‘^]’.Sun Oct 25 08:34:06 1998Connection closed by foreign host.
در یک ماشین تحت Windows شما می توانید از طریق وارد کردن عبارت “telnet web67.ntx.net 13” در Command Prompt به این سرویس دهنده متصل شوید.
در این مثال web67.ntx.net یک ماشین سرویس دهنده UNIX و ۱۳ شماره پورت سرویس Daytime است. برنامه Telnet به پورت ۱۳ متصل شده(Telnet به طور پیش فرض به پورت ۲۳ وصل می شود، ولی شما می توانید پورت موردنظر خود را مشخص کنید)، سپس سرویس دهنده تاریخ و زمان را ارسال کرده و ارتباط را قطع می کند. اکثر نسخه های Telnet امکان تعیین پورت را به شما می دهند، بنابراین شما می توانید این مسئله را با هر نسخه ای از telnet را که در اختیار دارید امتحان کنید.
اکثر پروتکل ها پیچیده تر از Daytime هستند و در اسناد Request for Comment(RFC) تعیین شده اند که به صورت عمومی در دسترس هستند(وبسایت http://www.rfc-editor.org/rfc.html آرشیو خوبی از RFCها ارائه می دهد.) همه سرویس دهندگان وب در اینترنت از پروتکل HTTP پیروی می کنند.(خلاصه آن را در این صفحه HTTP همانطور که در ۱۹۹۱ تعریف شد ملاحظه فرمایید)
پایه ای ترین شکل پروتکل که توسط یک سرویس دهنده HTTP فهمیده می شود تنها از یک دستور تشکیل شده است: GET. اگر به سرویس دهنده ای که پروتکل HTTP را درک می کند متصل شوید و به آن بگویید “GET filename”، سرویس دهنده با ارسال محتوای فایل ذکرشده و قطع ارتباط پاسخ می دهد. برای مثال به این صورت:
%telnet www.iranhost.com 80Trying 174.142.214.47…Connected to iranhost.com.Escape character is ‘^]’.GET http://www.iranhost.com/ …Connection closed by foreign host.
در نسخه اولیه پروتکل HTTP شما می بایست نام فایل را ارسال می کردید، مثلا “/” یا “/default.aspx” بعدها پروتکل تغییر کرد تا بتواند یک URL کامل را تجزیه تحلیل کند. این تغییر به شرکتها امکان داد تا میزبان دامنه های مجازی باشند و به طوری که دامنه های بسیار زیادی تنها بر روی یک ماشین ایجاد شوند تا بتوان یک نشانی IP را برای تمام دامنه هایی که میزبانی می شوند به کار برد. مثلا صدها دامنه که بر روی ۲۰۹.۱۱۶.۶۹.۶۶ میزبانی می شوند.
جمع بندی
حالا شما می دانید وقتی یک URL را در مرورگر خود تایپ می کنید، مراحل زیر اتفاق می افتند:
مرورگر URL را به سه بخش تقسیم می کند:
- پروتکل (“http”)
- نام سرویس دهنده(“www.iranhost.com”)
- نام فایل(“default.aspx”)
مرورگر با یک سرویس دهنده نام ارتباط برقرار می کند تا نام سرویس دهنده www.iranhost.com را به نشانی IP ترجمه کند، که به وسیله آن بتواند به ماشین سرویس دهنده متصل شود. سپس مرورگر یک ازتباط را با سرویس دهنده از طریق پورت ۸۰ ترتیب می دهد. بر طبق پروتکل HTTP، مرورگر درخواست GET را به سرویس دهنده ارسال می کند و تقاضای فایل web-server.htm را می کند(توجه داشته باشید ممکن است همراه با دستور GET، cookieها از مرورگر به سرویس دهنده ارسال شوند.) سرویس دهنده نیز فایل متنی HTML مربوط به صفحه وب مورد تقاضا را ارسال می کند.(ممکن است در Header صفحه، cookieها از سرویس دهنده به مرورگر ارسال شوند.) مرورگر HTML tagها را خوانده و صفحه مورد نظر را بر روی نمایشگر شما ایجاد می کند.
به شما پیشنهاد می شود برای کسب اطلاعات در حوزه wsdl چیست مقاله ما را مطالعه نمایید.
سوالات متداول