سلام
شما تحت یک جفت IP,PORT یکسان میتوانید تعداد نامحدودی ارتباط دوطرفه ایزوله شده را برقرار کنید.
حتی در سطح HTTP بد نیست بدانید که روی یک IP,PORT یکسان میتواند تعداد نامحدودی سایت را میزبانی کرد.
از لحاظ شهودی این مانند تماس با تلفن واحد 118 توسط چندین نفر در آن واحد است.
از لحاظ TCP/IP شما در سمت کلاینت یک IP,PORT را میدهید و به سرور متصل میشود، سرور درخواست شما را Accept میکند.
در این لحظه یک کانال دوطرفه منحصر بفرد ایجاد میشود، کانالی که فقط یک درخواست از یک کلاینت با یک ریسمان از سرور در حال تبادل اطلاعات هستند.
سپس طبق پروتکل HTTP کلاینت یک متنی مانند این را به سرور ارسال میکند.
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این متن درخواست را سوکت سمت سرور که معمولا برنامه های پایه ای مانند IIS یا Apache هستند دریافت میکنند و پس از یک مسیریابی اولیه برنامه وب سایت مرتبط با این درخواست را پیدا میکنند،
در مثال ما باید برنامه ای باشد که در فهرست IIS یا Apache خود را برای پاسخ به درخواست های HTTP آدرس
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
ثبت کرده باشد.
این برنامه میتواند بستر زیر ساخت پایه ASP.Net یا PHP و... باشد که درخواست را تحویل میگیرد.
این برنامه هم طبیعتاً مجدد درخواست را یک مسیر یابی میکند و کد aspx یا php مرتبط با درخواست را پیدا و اجرا میکند.
بعنوان نمونه ازجمله اقدامات دیگر پلتفرم پایه، میتوان به خواندن کوکی (یکی از هدرهای HTTP) و ردیابی کاربر و یافتن شی صحیح Session اوست.
(((
ترجمه شده و مدون شده اطلاعات اولیه این درخواست string که سوکت کلاینت ارسال کرده بوده، همان شی Request را شامل میشود که ما در ASP.Net به آن دسترسی داریم
)))
سپس اینجاست که کدهای برنامه نویسی ما اجرا میشود و در نهایت با کمک بستر زیر ساخت زبان، کل نتایج کد به یک متن صریح string با فرمت HTML تبدیل میشود.
این جوابیه همان مسیر را معکوس طی میکند تا در نهایت توسط IIS و Apache پاسخی این چنین برای کلاین ارسال میشود.
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
(((
اطلاعات این پاسخ همان چیزی هستند که ما در برنامه نویسی ASP.Net آن ها را در شی Response تنظیم کرده ایم
)))
و معمولاً هر دو سوکت بسته خواهد شد.
(گاها شاید با تنظیم هدرهای خاصی بین سرور و مرورگر جهت افزایش سرعت سوکت باز شده بسته نشود که فقط در شرایط خاص رخ میدهد و ارتباطی با فهم فرآیند ندارد، در هرحال شما حتماً میتوانید فرض کنید همیشه هر دو سوکت کلاینت و سرور بسته میشود)
خلاصه:
مرورگر
بازکردن سوکت
ارسال درخواست HTTP
مسیر یابی در برنامه IIS و یافتن برنامه مرتبط
مسیر یابی درخواست درون خود برنامه
اجرای برنامه و گرفتن جوابیه HTML برای درخواست
ارسال جوابیه HTML در پوشش HTTP
بستن ارتباط
خوب حالا دقیقاً کجایش ابهام دارد؟!