در این مقاله به اینکه HTTP چیست و چه متدهایی دارد، می پردازیم.
HTTP مخفف عبارت (Hyper Text Transfer Protocol) می باشد که یک پروتکل کاربردی hypermedia برای سیستم های اطلاعات توزیع شده و مشارکتی است. HTTP اساس ارتباط داده در وب جهان گستر (World Wide Web) می باشد.
hyper text یک متن ساختار یافته است که از لینک های منطقی (hyperlink) بین گره های (nodes) حاوی متن، استفاده می کند. HTTP پروتکلی برای تبادل یا انتقال فرامتن (Hyper Text) است.
تاریخچه HTTP
در سال ۱۹۸۹، توسعه HTTP به وسیله Tim Berners-Lee در CERN آغاز شد. استانداردهای توسعه HTTP به وسیله IETF و W3C هماهنگ شد و با انتشار RFCs به اوج خود رسید.
اولین تعریف HTTP/1.1 (ورژنی از HTTP برای استفاده های معمول) در سال ۱۹۹۷ در RFC2068 به وجود آمد که در سال ۱۹۹۹ به وسیله RFC2616 و در سال ۲۰۱۴ به وسیله RFC7230 پذیرفته شد. ورژن بعدی HTTP2 در سال ۲۰۱۵ استانداردسازی شد و هم اکنون به وسیله وب سرویس های مهم، پشتیبانی می شود.
بررسی فنی HTTP
HTTP به عنوان یک پروتکل درخواست-پاسخ در یک مدل کلاینت-سرور کار می کند. به عنوان مثال ممکن است یک مرورگر نقش کلاینت و برنامه ای در کامپیوتر میزبان وب، نقش سرور را داشته باشد.
کلاینت یک درخواست HTTP را به سرور ارسال می کند و سرور منابعی همچون فایل های HTML یا دیگر محتویات را آماده میکند و یا دستورالعمل هایی را برای کلاینت انجام می دهد و در نهایت پاسخی به کلاینت ارسال می کند. پاسخ شامل اطلاعات وضعیت اجرای درخواست می باشد و حتی ممکن است در محتوای خود حاوی درخواست هایی باشد.
یک مرورگر وب مثالی از UA) User Agent) می باشد. و از جمله UA ها می توان موارد که در ادامه می آیند را نام برد: web crawlers) search providers)، مرورگرهای صدا، نرم افزارهای موبایل و دیگر نرم افزارهایی که در دسترسی، استفاده یا ارائه محتویات وب کاربرد دارند.
کاربرد HTTP چیست ؟
HTTP به منظور ایجاد یا بهبود عملکرد شبکه های میانی در ارتباط بین کلاینت و سرور طراحی شده است. وب سایت های با ترافیک بالا برای بهبود زمان پاسخ خود، از cache server هایی که محتوا را از سرورهای اصلی می گیرند، استفاده می کنند. مرورگرها برای کاهش ترافیک شبکه، منابعی را که سابقا به آن ها دسترسی پیدا کرده اند، کش می کنند تا در صورت امکان مجددا از آن ها استفاده کنند.
متد های درخواست HTTP چیست
HTTP متدهایی را برای انجام کارهای مورد نظر، روی منابع شناخته شده، ارائه می دهد. اطلاعاتی که این منابع ارائه می دهند، خواه از قبل وجود داشته باشند و خواه به صورت دینامیک تولید شوند، به پیاده سازی سرور بستگی دارند. معمولا منبع، یک فایل موجود در سرور یا خروجی سرور است.
HTTP/1.0 متدهای GET، POST و HEAD را تعریف کرد و HTTP/1.1، پنج متد جدید به آن اضافه کرد: OPTIONS ،PUT، DELETE، TRACE و CONNECT.
هر کلاینت می تواند هر یک از متدها را به کار ببرد و هر سرور می تواند طوری تنظیم شود، تا از ترکیبی از این متدها را پشتیبانی کند. اگر متدی برای یک واسط ناشناخته باشد، با آن به عنوان یک متد نا امن برخورد می شود. محدودیتی برای تعریف متدها وجود ندارد و این باعث می شود در آینده برای تعریف متدهای جدید نیازی به از بین بردن زیرساخت های موجود نباشد. برای مثال WebDAV هفت متد جدید و RFC5789، متد PATCH را تعریف کرده است.
لیست متدهای HTTP
متد GET
متد GET درخواست ارائه منبعی خاص را صادر می کند. درخواست هایی که از GET استفاده می کنند، می بایست تنها داده را بازیابی کنند و نباید اثر دیگری داشته باشند.
متد HEAD
این متد همانند متد درخواست GET، به دنبال پاسخ می گردد اما بدون Response body. با توجه به این که در این متد نیازی به انتقال تمامی محتوا نیست، روش مناسبی برای بازیابی اطلاعات هدر پاسخ (Response header) است.
متد POST
این متد درخواست می کند که سرور، موجودیت موجود در درخواست را به عنوان بخش جدیدی از منبعی که در URI مشخص شده است، بپذیرد. داده هایی که POST می شوند، ممکن است یکی از این موارد باشند: تفسیری از منابع موجود، پیامی برای بولتن، گروه خبری، لیست ایمیل ها، موضوع کامنت، بلوکی از داده ها که نتیجه ارسال یک وب فرم به واحد پردازش داده هستند و یا مطلبی برای اضافه کردن به پایگاه داده.
متد PUT
متد PUT درخواست می کند، که موجودیت موجود در درخواست، در URI معرفی شده، ذخیره شود. اگر URI به منبعی که در حال حاضر موجود است، ارجاع شود، این منبع به روز می شود و اگر URI به منبعی که وجود ندارد، اشاره کند، سرور می تواند منبعی را برای آن URI بسازد.
متد DELETE
این متد منابع مشخصی را پاک می کند.
متد TRACE
این متد درخواست دریافت شده را منعکس می کند؛ در این صورت کلاینت می تواند تغییرات یا موارد اضافه شده توسط سرور واسط را ببیند.
متد OPTIONS
این متد، متدهایی که سرور برای یک URL خاص پشتیبانی می کند را برمی گرداند. می توان برای بررسی عملکرد وب سرور، بجای استفاده از منابعی خاص، از ‘*’ استفاده کرد.
متد CONNECT
این متد اتصال درخواست را به کانال TCP/IP تبدیل می کند که اغلب برای آسان کردن ارتباط بین SSL رمز گذاری شده (HTTPS) و پروکسی HTTP بدون رمز به کار می رود.
متد PATCH
این متد تغییراتی جزئی را روی یک منبع اعمال می کند.
تمامی سرورهایی که برای مقاصد عمومی به کار می روند، حداقل از متدهای GET و HEAD استفاده می کنند و هرگاه که ممکن باشد نیز متد OPTION را به کار می برند.
دیدگاه بگذارید