کلیدستان

نسخه‌ی کامل: سوال در مورد وب سرویس (تفاوت HTTP programming و Sockets programming)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
باسلام خدمت شما،
میشه فرق بین برنامه نویسی سوکت و http رو خلاصه توضیح بدید.
مثلا برنامه ای مثل دیوار یا بازار از کدوم استفاده میکنند؟
کدومشون سریعتره؟
ادمین جان من از شما واقعا انتظار دارم. ..

 
سلام.
بنده تجربه ای در زمینه Sockets programming ندارم و فقط می توانم تفاوت آن با HTTP programming را بر اساس شنیده هایم، به صورت مختصر ذکر کنم.
تفاوت بر اساس سطح برنامه نویسی است. بگذارید یک مثال بر اساس درس شبکه ها (networks) براتون بزنم. مثلا بنده قصد دارم عبارت زیر را از کامپیوتر خود به سایت کلیدستان ارسال کنم :

کد پی‌اچ‌پی:
message 

وقتی پیام به سایت کلیدستان ارسال شد، بنده می گویم که پیام ((message)) به سایت ارسال شد، اما اطلاعاتی که کامپیوتر من به سرور شامل سایت کلیدستان ارسال می کند، خیلی پیچیده تر است. یعنی این پیام، خود در بسته های اطلاعاتی قرار داده شده و ارسال می شود (پس اطلاعات ارسالی، چیزی بیش از آن می باشد). منظور از بسته های اطلاعاتی، کدگذاری ها و شیوه های مختلفی است که برای ارسال صحیح اطلاعات بین نقاط مختلف شبکه به کار می رود (قراردادی در کل نقاط شبکه که برای ارسال و دریافت اطلاعات به کار می رود). در این شیوه ها، مواردی مثل خطا در دریافت، کوچک سازی حجم اطلاعات تا حد ممکن و ... در نظر گرفته می شود. این بسته های اطلاعاتی، معمولا تنها در یک مرحله ساخته نمی شوند، بلکه ممکن است چندین مرحله برای ساخت اطلاعات نهایی که به صورت 0 و 1 ارسال می شود، اطلاعات تغییر داده شوند. 

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