Login

Register

Login

Register

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) درخواست می‌شوند

امیدوارم که این مقاله براتون مفید واقع شده باشد.

“موفق و پیروز باشید”