همه ما با وبسایتها آشنا هستیم و اغلب اوقات زیادی را در استفاده از دنیای وب مصرف میکنیم. اما آیا تا به حال به جزئیات نحوه انتقال اطلاعات در دنیای وب فکر کردید؟ در این متن قصد داریم، با شما درباره پروتکل HTTP، که زبان مشترکی در دنیای وب است و نقش مهمی در انتقال اطلاعات از وبسرور به مرورگر شما دارد، بیشتر آشنا بشویم.
وب سرور و HTTP client
منابع وبسایت بر روی وب سرورها نگهداری میشوند؛ این وب سرورها با سایر سرورها ارتباط برقرار میکنند، و بر اساس پروتکل HTTP عمل مینمایند. به همین دلیل، آنها را وب سرورهای HTTP نیز مینامند. وظیفه وب سرورها نگهداری اطلاعات وبسایت و ارائهی اطلاعاتی است که HTTP Client درخواست میدهد. HTTP Client درخواست اطلاعات را ارسال میکند و وب سرور اطلاعات مورد درخواست را ارائه میدهد. HTTP Client به نرمافزارهایی گفته میشود که درخواستهای HTTP را ارسال کرده و پاسخها را دریافت میکنند. معروفترین HTTP Clientها که ما روزانه از آنها استفاده میکنیم شامل مرورگرهایی مانند Chrome، Firefox و Microsoft Edge هستند.
URL
URL یا به عبارت دقیقتر (Uniform Resource Locator)، یک روش برای شناسایی مکان منابع و یافتن آنها در وبسرورها می یاشذ؛ مشابه کد پستی که برای ارجاع و یافتن مکانهای مختلف می باشد. هر URL میتواند به یک صفحه از وبسایت، یک سند و منابع دیگری که در وبسرور نگهداری میشوند، اشاره بکند؛ و به هر منبع وبسایت، یک URL منحصر به فرد و مشخص اختصاص داده شده است.به طور مثال URL این صفحه /https://duckboard.net/http-protocol می باشد.
رد و بدل اطلاعات توسط پروتکل Http
یک گفتگو کامل اطلاعات توسط پروتکل HTTP از یک درخواست HTTP و یک پاسخ HTTP تشکیل میشود. درخواست توسط Client ارسال میشود و وبسرور آن را دریافت کرده و نتیجه را در قالب پاسخ HTTP به Client برمیگرداند. درخواست و پاسخ HTTP به صورت یک سری داده با فرمت خاص ارسال میشود که به آنها پیام HTTP میگویند.
پیامهای HTTP به شدت ساده هستند؛ این پیامها شامل مجموعهای از کاراکترها هستند که پشت سر هم در سطرهای مختلف قرار گرفتهاند. به خاطر اینکه پیامهای HTTP متن ساده هستند و نه کدهای باینری، بسیار خوانا هستند و کار با آنها آسان است. پیامهایی که از طرف Client به سرور ارسال میشوند، پیام درخواست نامیده میشوند و پیامهایی که از طرف سرور به Client ارسال میشوند، پیام پاسخ میگویند. فقط همین دو نوع پیام را در HTTP داریم که در فرمت شباهتهای زیادی با هم دارند.
پیامهای HTTP به شدت ساده هستند؛ این پیامها شامل مجموعهای از کاراکترها هستند که پشت سر هم در سطرهای مختلف قرار گرفتهاند. به خاطر اینکه پیامهای HTTP متن ساده هستند و نه کدهای باینری، بسیار خوانا هستند و کار با آنها آسان است. پیامهایی که از طرف Client به سرور ارسال میشوند، پیام درخواست نامیده میشوند و پیامهایی که از طرف سرور به Client ارسال میشوند، پیام پاسخ میگویند. فقط همین دو نوع پیام را در HTTP داریم که در فرمت شباهتهای زیادی با هم دارند.
ساختار پیام های HTTP
پیامهای HTTP ساختار مشابهای دارند؛ هر پیام به سه بخش تقسیم میشود: خط شروع، بخش Header، و بخش Body.
خط شروع اولین خط در پیام HTTP است و مشخص میکند که درخواست HTTP چه فعالیتی را انجام میدهد و چه فعالیتی در پاسخ HTTP انجام شده است. در درخواست HTTP، این خط نوع درخواست را مشخص میکند. درخواستهای HTTP انواع مختلفی دارند؛ این نوع درخواست مشخص میکند که وب سرور چه فعالیتی را انجام دهد.
در پاسخ HTTP، این خط یک کد سه رقمی را برمیگرداند که موفقیت یا عدم موفقیت فعالیت را مشخص میکند . در صورت عدم موفقیت، این کد خطای مورد نظر را برمیگرداند. یکی از کدهای وضعیت HTTP که معروفتر از بقیه است، کد 404 است. این کد برای خطای ناموجود بودن صفحه وبسایت در وبسرور استفاده میشود.
بخش Header شامل اطلاعات و ویژگیهایی مانند اندازه پیام، فرمت اطلاعات و غیره میشود. هر پیام HTTP میتواند هیچ یا بیشتر از یک عدد از این نوع اطلاعات داشته باشد. اطلاعات بخش header به صورت نوع متغیر: مقدار متغیر میباشد.
بخش Body، این بخش شامل اطلاعاتی هست که توسط پیام HTTP انتقال مییابد. این بخش ضروری نمیباشد و فقط زمانی به آن نیاز داریم که بخواهیم، اطلاعاتی، توسط پیام HTTP انتقال بدهیم. برخلاف دو بخش قبل این بخش هیچ ساختار خاصی برای اطلاعات ندارد و اطلاعات میتواند به اشکال مختلفی در آن قرار بگیرند.
شکل زیر یک نمای کلی از پروتکل HTTP را به ما نشان می دهد
اگر می خواهید، در مورد پروتکل HTTP اطلاعات بیشتری کسب بکنید. کتاب های متعددی وجود دارد، که می توانید از آن ها استفاده بکنید. یکی از این کتاب ها کتاب HTTP: The Definitive Guide است که این پروتکل را به صورت کامل توضیح می دهد.
on HTTP پروتکل معروف دنیای وب