REST يك مدل معماري براي طراحي برنامههاي كاربردي شبكه است كه ترکیبی از چند مدل معماری مبتنی بر شبکه ميباشد و محدودیتهايی جهت تعریف يك واسط اتصال یکنواخت براي آن درنظر گرفته شده است.
REST مخفف عبارت Representational State Transfer است و متكي بر يك پروتكل ارتباطي بدون حالت، كلاينت سرور و با قابليت cache كردن ميباشد كه در اكثر موارد پروتكل HTTP مورد استفاده قرار ميگيرد.
ايده اصلي معماري REST اين است كه به جاي استفاده از مكانيزم هاي پيچيده اي مانند CORBA، RPC يا SOAP براي اتصال ماشين ها ازHTTP ساده براي برقراري ارتباط بين ماشينها استفاده شود.
مدل REST شش قيد براي معماری برنامههاي شبكه تعريف ميكند:
- كلاينت سرور (client-server) باشد.
- بدون حالت (stateless) باشد.
- قابليت cache داشته باشد. (cacheable)
- سيستم لايهبندي شده (layered system) داشته باشد.
- واسط يكنواخت (uniform interface) داشته باشد.
- داراي قابليت كد در صورت نياز (code on demand) باشد. (كه اين محدوديت اختياري ميباشد)
به سيستمي كه اين قيود را رعايت نمايد، RESTful ميگويند.
از لحاظ رويكرد برنامه نويسي REST جايگزيني ساده براي سرويسهاي وب است. توسعهپذيري در تعاملات ميان اجزا، عموميت واسط ها، توسعه مستقل اجزا و استفاده از واسطه ها از كليدي ترين اهداف معماري REST ميباشد و همچنين استفاده از معماري REST در برنامهنويسي كارايي، سادگي، انعطافپذيري، امكان مشاهده و نظارت، قابليت حمل و قابليت اطمينان را افزايش مي دهد.