انتقال بازنمودی حالت
From Wikipedia, the free encyclopedia
انتقال بازنمودی حالت (به انگلیسی: Representational state transfer (REST)) یک سبک معماری نرمافزاری است که مجموعه ای از محدودیتها را برای استفاده در ایجاد خدمات وب تعریف میکند. سرویسهای وب که مطابق با سبک معماری REST، به نام خدمات وب RESTful هستند، قابلیت همکاری بین سیستمهای رایانه ای در اینترنت را فراهم میکنند. یک وب سرویس RESTful به سیستمهای متقاضی اجازه میدهد تا با استفاده از یک مجموعه یکسان و از پیش تعریف شده از عملیات بدون حالت، به بازنماییهای متنی از منابع وب دسترسی پیدا نموده و آنها را دستکاری کنند. انواع دیگر خدمات وب، مانند سرویسهای وب SOAP، مجموعه عملیات دلخواه خود را در معرض نمایش قرار میدهند.[1]
«منابع وب» برای اولین بار در شبکه جهانی وب به عنوان اسناد یا پروندههایی که توسط URLهای آنها مشخص شده بود تعریف شد. با این حال، امروز آنها تعریف بسیار ژرفتر و انتزاعی تری دارند که شامل هر چیز یا موجودیتی است که میتواند شناسایی، نام گذاری و آدرس دهی شده یا به هر روشی در وب شناسایی شود. در یک وب سرویس RESTful، درخواستهای ارسال شده به URI منبع، پاسخی را به صورت یک بسته داده در قالب HTML، XML , JSON یا سایر قالبها ایجاد میکنند. پاسخ میتواند تأیید کند که آیا تغییراتی در منابع ذخیره شده ایجاد شدهاست، و نیز میتواند پیوندهای ابر متن به سایر منابع مرتبط یا مجموعه منابع را فراهم کند. هنگامی که از HTTP استفاده میشود، به عنوان متداولترین روش، عملیات (متدهای HTTP) موجود عبارتند از: GET , HEAD , POST , PUT , PATCH , DELETE , CONNECT , OPTIONS و Trace.[2]
با بهرهوری از یک پروتکل بدون حالت و عملیات استاندارد، سیستمهای RESTful میتوانند از کامپاننتهایی که بدون تأثیرگذاری کلی روی سیستم، حتی در حالی که سیستم در حال اجراست، قابلیت مدیریت و بروز شدن دارند، استفاده مجدد نمایند. این ویژگی به این سیستمها اجازه میدهد که عملکرد سریع، قابلیت اطمینان و توانایی رشد را داشته باشند.
اصطلاح انتقال بازنمودی حالت در سال ۲۰۰۰ توسط روی فیلدینگ در رساله دکتری وی معرفی و تعریف شد.[3] پایاننامه فیلدینگ، اصول REST را که از آغاز سال ۱۹۹۴ به عنوان "مدل شی HTTP" شناخته میشد، توضیح داد و در طراحی استانداردهای HTTP 1.1 و شناسههای یکسان منابع (URI) مورد استفاده قرار گرفت.[4] اصطلاح " انتقال بازنمودی حالت "قصد دارد تصویری از چگونگی رفتار یک برنامه خوش طراحی شده وب ارائه کند: چنین برنامه ای شبکه ای از منابع وب (یک ماشین حالت مجازی) است که کاربر با انتخاب شناسههای منبع مانند http://www.example.com/articles/21 و عملیات منبع مانند GET یا POST (انتقال حالت برنامه) میتواند در این برنامه پیمایش کند که در نتیجه این عملیات، نمایشی از منابع بعدی آماده شده و برای استفاده به کاربر منتقل میشود (تهیه وارائه این نمایش در واقع یک حالت جدید بوده و حالت بعدی برنامه تعیین میکند).