HTTP چیست و نحوه کارکرد آن چگونه است
پروتکل HTTP مخفف عبارت Hyper Text Transfer Protocol است و به ارتباط میان سرویسدهنده (server) و کاربر (client) در وب میپردازد.
ارتباط بین سیستمهای client و سرورها از طریق ارسال درخواستهای http یا همان HTTP request و دریافت پاسخهای http یا همان HTTP response انجام میشود.
به زبان سادهتر، http یک نوع قانون است که ارسال و دریافت اطلاعات بین client وserver بر اساس آن انجام میشود و باید از قوانین و شرایط آن پیروی کنند تا این ارتباط برقرار شود.
نحوهی برقراری ارتباطات در وب
ارتباطات در دنیای وب بر اساس ارتباط بین سرویسدهنده (server) و سرویسگیرنده (client) میباشد. در این ارتباط client ها اغلب مرورگرهای (کروم، سافاری و…) و گاهی هم نرمافزارها هستند. سرورها هم کامپیوترهایی همیشه روشن هستند که خدماتی را به client ها ارائه میدهند.

درخواست و پاسخهای مبتنی بر پروتکل HTTP
همانطور که گفته شده ارتباط بین سرویس دهنده و سرویس گیرندهها از طریق درخواستهای http صورت میگیرد. اما مراحل ارسال درخواست به چه صورت است؟
۱- سرویس گیرنده (مثلاً یک مرورگر) یک درخواست http به وب میفرستد.
۲- سرور درخواست را دریافت میکند.
۳- سرور یک نرمافزار را برای پردازش درخواست دریافت شده، اجرا میکند
۴- سرور پاسخ درخواست را از طریق پروتکل http به همان سرویسگیرنده یا client میفرستد.
۵- سرویسگیرنده پاسخ را دریافت میکند.
یک نمونه از درخواست Http :
HEAD /admin HTTP/1.1
Host: www.example.com
HTTP/1.1 200 OK
Date: Mon, 18 Aug 2008 22:44:11 GMT
Server: Apache
Set-Cookie: PHPSESSID=pKi...; path=/; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: adminOnlyCookie1=...; expires=Tue, 18-Aug-2009 22:44:31 GMT; domain=www.example.com
Set-Cookie: adminOnlyCookie2=...; expires=Mon, 18-Aug-2008 22:54:31 GMT; domain=www.example.com
Set-Cookie: adminOnlyCookie3=...; expires=Sun, 19-Aug-2007 22:44:30 GMT; domain=www.example.com
Content-Language: EN
Connection: close
Content-Type: text/html; charset=ISO-8859-1
درخواستهای HTPP در XHR-XML
مرورگرها بر اساس شئی XMLHttpRequest) XHR) ساخته شدهاند. XHR یک شئی از جاوا اسکریپت است که برای انتقال اطلاعات بین مرورگرها و سرورها استفاده میشود. این شئی معمولاً با هدف اصلاح یک صفحه از وب استفاده میشود.
شی XHR از پروتکل دیگری به جز http استفاده میکند و دادههای آن میتوانند در انواع مختلف مثل html ،CSS JSON ،XML باشند. XHR همواره مورد توجه توسعهدهندگان وب بوده زیرا با کمک آن میتوانید اقدامات زیر را انجام دهید:
- بروزرسانی صفحهی وب بدون نیاز به بارگذاری مجدد.
- ارسال درخواست داده از یک سرور بعد از اینکه صفحهی وب بارگذاری شد.
- دریافت داده از یک سرور بعد از اینکه صفحهی وب بارگذاری شد.
- ارسال داده ها به سرور در پسزمینه.
شی XHR مفهوم پایه برای JSON و AJAX محسوب میشود.
انواع متدهای HTTP :
GET
یک داده یا اطلاعاتی را دریافت میکندHEAD
مانند متد GET میباشد با این تفاوت که فقط Header ها را بر میگرداند و نه بدنه را (Body).POST
یک داده را میفرستد و میسازدPUT
یک داده را به روز رسانی میکندDELETE
یک داده را پاک میکندCONNECT
تبدیل request connection به یک transparent TCP/IP tunnel.OPTIONS
به ما اطلاعاتی درباره متدهای قابل دسترس میدهدTRACE
این متد معمولا برای دیباگ کردن و در پروسه ی Development استفاده می شود.
ویژگی های متدهای مختلف HTTP :
GET
درخواست GET میتواند کش شوند (chache).
درخواست GET میتواند در History مرورگر بماند.
درخواست GET میتواند BookMark شود.
درخواست GET هرگز نباید در برخورد با دادهای حساس استفاده شود.
درخواست GET دارای محدودیت طولی (منظور تعداد کاراکتر) میباشد
درخواست GET فقط برای دریافت داده باید استفاده شود
داده ها متد GET به صورت جفت name/value از طریق URL در خواست میشوند
POST
درخواست های متد POST هیچوقت کش (cache) نمیشود.
درخواست های متد POST در History مرورگر بجا نمی ماند.
درخواست های متد POST نمیتواند BookMark شود
درخواست های متد POST بدون محدودیت طولی هستند
داده های متد POST به صورت جفت name/value از طریق HTTP Message Body (بدنه پیغام http) درخواست میشوند
امیدوارم که این مقاله براتون مفید واقع شده باشد.
“موفق و پیروز باشید”