آشنایی با پروتکل HTTP

پروتکل HTTP

با صرف نظر از توضیحات پروتکل http در شبکه، به نحوه عملکرد این پروتکل میپردازیم. پروتکل http روشی برای برقراری ارتباط و تبادل اطلاعات میان دو ماشین در شبکه با استفاده از ip است؛ چرا که تمامی ماشین‌های موجود در شبکه (محلی، اینترنت یا اینترانت و ...) دارای آدرس ip بوده و در واقع ip را میتوان آدرس ماشین در شبکه در نظر گرفت. این پروتکل مبتنی بر ریکوئست است، به این صورت که مبدا در ابتدا یک درخواست (request) برای مقصد ارسال نموده و سپس مقصد یک پاسخ(response) به مبدا ارسال میکند و سپس ارتباط قطع میشود. همانطور که مشخص است ارتباط میان مبدا و مقصد دائمی نیست و در نهایت با دریافت ریسپانس تکمیل شده و پایان می یابد.

نکته قابل توجه آن است که وب‌سرویس‌های RESTful از پروتکل http جهت ارتباط در شبکه استفاده میکنند، از این رو تمامی سایت‌های اینترنتی مبتنی بر پروتکل http هستند. به زبان ساده‌تر تصور کنید در یک صفحه اینترنتی با ورود به صفحه یک متن یا تصویر نمایش داده میشود. در واقع در این زمان با ورود به صفحه یک request از دستگاه شما که دارای ip مشخصی است به سرور مقصد که آن هم دارای ip است ارسال میشود. در صورت عدم وجود مشکل در شبکه و دستگاه‌ها، سرور همان متن قابل مشاهده یا تصویر در صفحه را در response به دستگاه شما بازگردانده و این متن توسط اپلیکیشن(مرورگر یا سایر نرم افزار های مفسر) به تصاویر و سایر عناصر صفحه تبدیل میشود و روی دستگاه شما به نمایش گذاشته میشود.

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

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

  • - ممکن است ارتباط شبکه برقرار نشود.
  • - ممکن است مقصد در اجرای عملیات خود دچار خطا شود.
  • - ممکن است آدرس وب سرویس در مبدا اشتباه تنظیم شده باشد و هیچ گاه درخواست به مقصد نرسد.
  • - ممکن است مبدا اجازه دسترسی به سرویس در مقصد را نداشته باشد و با خطای عدم دسترسی یا عدم احراز هویت مواجه شود.

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

کد های وضعیت در پروتکل HTTP

خطای 404

Not Found Error (404)

زمانی که آدرس مقصد request به دلایل مختلف توسط مبدا قابل دسترسی نباشد.

Internal Server Error (500)

زمانی که در مقصد یک request خطای مدیریت نشده ای به وقوع بپیوندد و عملیات ناموفق شود.

Success (200)

زمانی که پس از ارسال repuest عملیات در مقصد با موفقیت انجام شود و response به مبدا ارسال شود.

Unauthorized (401)

زمانی که ارسال کننده request از نظر مقصد یک متقاضی غیرمجاز باشد.

Bad Request (400)

زمانی که در ارسال requestداده های ارسالی صحیح نبوده و برای مقصد غیرقابل فهم باشد.

نظر خود را بنویسید.