6/16/2013

وب چطور کار مي کند ؟

وب چطور کار مي کند؟

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

کلا از ديدگاه فني، سيستم وب در دو بخش سازماندهي مي شود:
**برنامه سمت سرويس دهنده وب و برنامه سمت مشتري وب
** پايگاه اطلاعاتي توزيع شده از صفحات ابرمتن، فايل هاي داده مثل صدا، تصوير و به طور کلي هر منبع اطلاعاتي
 
صفحه ي وب چيزي نيست مگر يک فايل متني بسيار ساده که با يکي از زبان هاي نشانه گذاري ابرمتني مثل HTML، XHTML، DHTML يا XML تدوين مي شود. کاري که مرورگر به عنوان "مشتري وب" انجام مي دهد آن است که تقاضاي دريافت يکي از اين صفحات يا فايل ها را در قالب قراردادي استاندارد (مثلا به نام پروتکل HTTP) به سمت سرويس دهنده ارسال کند. در سمت مقابل سرويس دهنده وب اين تقاضا را پردازش کرده و در صورت امکان فايل مورد نظر را براي مرورگر ارسال مي کند. مرورگر پس از دريافت فايل ابرمتني، آن را تفسير کرده و به صورت صفحه آرايي شده روي خروجي نشان مي دهد. اگر فايل ابرمتني در جايي به فايل صدا يا تصوير پيوند خورده باشد آنها نيز توسط مرورگر تقاضا شده و پس از دريافت در جاي خود قرار مي گيرند.
سرويس دهنده وب را نيز بايد يک برنامه سوکت در نظر گرفت که فرامين مشتري را دريافت، پردازش و در صورت امکان اجرا مي کند. برنامه سمت مشتري نيز برنامه سوکتي است که تقاضاها را در قالب فرامين استاندارد، براي سرويس دهنده ي وب ارسال مي کند.
در ذهن خود دو مفهوم کاملا مجزاي زير را از هم تفکيک کنيد:
 HTTP (Hyper Text Transfer Protocol):اين پروتکل زبان يا قراردادي براي صحبت کردن برنامه مشتري با سرويس دهنده وب است.
HTML (Hyper Text Markup Language):زباني براي قالب بندي و صفحه آرايي اطلاعات متني است.
 
ممکن است به اين نکته اعتراض کنيد که سرويس دهنده وب را با سرويس دهنده HTTP همسان گرفتيم (چون پروتکل هاي ديگري نيز وجود دارند) در صورتي که سرويس دهنده وب فراتر از سرويس دهنده HTTP است. ضمن تاييد اين نکته براي توجيه قضيه خاطرنشان مي کنيم که فعلا هسته ي ارتباطي سرويس دهنده وب همان HTTP است.
صفحه ي وب چيزي نيست مگر يک فايل متني بسيار ساده که با يکي از زبان هاي نشانه گذاري ابرمتني مثل HTML، XHTML، DHTML يا XML تدوين مي شود
در سمت سرويس دهنده ي وب پروسه اي وجود دارد که دائما به پورت شماره 80 گوش مي دهد و منتظر تقاضاي برقراري اتصال توسط مشتريان (برنامه مرورگر کاربران) مي ماند. دقت کنيد که برنامه سرويس دهنده از سوکت هاي نوع استريم استفاده مي کند و اتصال از نوع TCP است.
پس از آنکه اتصال TCP بين برنامه سرويس دهنده و مشتري برقرار شد، برنامه مشتري حق دارد يک يا چندين تقاضا بفرستد و اين تقاضاها بايد در قالب استاندارد HTTP باشد. سرويس دهنده يکايک تقاضاها را دريافت و پردازش کرده و در صورت امکان آنها را اجرا مي کند.
براي مثال شما روي آدرس http://www.tebyan.net/soundgallery.html کليک مي کنيد. يا اين آدرس را در مرورگر خود وارد مي کنيد.
مرورگر با تحليل آدرس URL فوق متوجه مي شود که بايد تقاضاي فايلي را طبق پروتکل HTTP به سمت سرويس دهنده بفرستد.
1- مرورگر آدرس URL را تحليل کرده و قسمت هاي پروتکل، آدرس نام حوزه، شاخه و نام فايل را از آن استخراج مي کند. سپس تقاضاي ترجمه ي آدرس نام حوره را به DNS محلي خود ارسال مي کند تا آدرس IP ماشين سرويس دهنده بدست بيايد. در اين مثال مرورگر ترجمه آدرس www.tebyan.net را به DNS ارسال مي کند.
 
2- مرورگر يک ارتباط TCP با آدرس فوق و پورت 80 برقرار مي کند.
 
3- پس از برقراري ارتباط رشته کاراکتري زير از سمت مشتري به سمت سرويس دهنده ارسال مي شود:
GET /soundgallery.html
Host: www.tebyan.net
If-modified-since: sat,2 jun 2013 14:35
CRLF
براي آنکه بدانيد وب چطور کار مي کند نيازي نيست حتما جزييات اطلاعاتي که بين مشتري و سرويس دهنده رد و بدل مي شود را بدانيد. همين که قسمت GET و Host را بدانيد کافي ست.
 
4- سرويس دهنده رشته فوق را دريافت مي کند و تشخيص مي دهد که بايد از سايت www.tebyan.net ، شاخه Soundgallery.html را بيابد و براي مرورگر ارسال کند.
 
5- مرورگر شما صفحه مورد نظر را دريافت مي کند و ارتباط TCP قطع مي شود.
 
6- مرورگر شما فايل ابرمتني (HTML) صفحه مورد نظر را ترجمه مي کند و به صفحه اي که براي شما قابل ديدن باشد تبديل مي کند.