Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Клиент-серверлік қолданбалар үшін архитектуралық стиль
Architectural style for client server applications
REST (representational state transfer) – Дүниежүзілік Тордың (World Wide Web) архитектурасын жобалау және дамытуды басшылыққа алу үшін жасалған бағдарламалық қамтамасыз ету архитектуралық стилі. REST – Интернет сияқты, кең ауқымды гипермедиа жүйесінің архитектурасының қалай жұмыс істеуі керектігін анықтайтын шектеулер жиынтығын белгілейді. REST архитектуралық стилі біртекті интерфейстерге, компоненттердің тәуелсіз орналасуына, олардың арасындағы өзара әрекеттесудің кеңею мүмкіндігіне, сондай-ақ пайдаланушы сезетін кешігуді азайту, қауіпсіздікті күшейту және ескі жүйелерді жасыру үшін кэштеуді қолдауға бағытталған қабатты архитектура құруға ерекше мән береді. REST бағдарламалық жасақтама индустриясының барлық жерінде күйсіз, сенімді веб-қосымшаларын жасау үшін пайдаланылып келеді. REST архитектуралық шектеулеріне сәйкес келетін қосымшаны бейресми түрде RESTful деп сипаттауға болады, бірақ бұл термин көбінесе HTTP негізіндегі API-лерді жобалаумен және ресурстың қайырлымдарына (HTTP әдістері) қатысты ең жақсы тәжірибелермен байланыстырылады, бірақ бастапқыда қалыптастырылған REST-тен көп қатысы жоқ және көбінесе осы тұжырымдамаға қайшы келеді.
REST (representational state transfer) is a software architectural style that was created to guide the design and development of the architecture for the World Wide Web. REST defines a set of constraints for how the architecture of a distributed, Internet scale hypermedia system, such as the Web, should behave. The REST architectural style emphasises uniform interfaces, independent deployment of components, the scalability of interactions between them, and creating a layered architecture to promote caching to reduce user perceived latency, enforce security, and encapsulate legacy systems. REST has been employed throughout the software industry to create stateless, reliable web based applications. An application that adheres to the REST architectural constraints may be informally described as RESTful, although this term is more commonly associated with the design of HTTP based APIs and what are widely considered best practices regarding the "verbs" (HTTP methods) a resource responds to while having little to do with REST as originally formulated—and is often even at odds with the concept.
Принцип
Өкілдік күйді беру термині 2000 жылы компьютерлік ғалым Рой Филдлинг өзінің докторлық диссертациясында енгізіліп, анықталды. Бұл сервердің ресурстың бейнелеуін қайтаруы (қазіргі кезде бұл көбінесе HTML, XML немесе JSON құжаты болады) және осы ресурста жүйе күйін өзгертуге мүмкіндік беретін гипермедиа сілтемелері болады дегенді білдіреді. Кез келген сұранысқа жауап ретінде де ресурстың бейнелеуі алынады, және осылай жалғаса береді. Маңызды салдары – бастапқы сұралған ресурстың идентификаторы ғана белгілі болуы керек, ал қалған идентификаторлар жүйе ішінде табылады. Бұл идентификаторлар клиентке ескертілмей өзгертілуі мүмкін, сондай-ақ клиент пен сервер арасындағы байланыс шала байланысқа негізделеді.
The term representational state transfer was introduced and defined in 2000 by computer scientist Roy Fielding in his doctoral dissertation. It means that a server will respond with the representation of a resource (today, it will most often be an HTML, XML or JSON document) and that resource will contain hypermedia links that can be followed to make the state of the system change. Any such request will in turn receive the representation of a resource, and so on. An important consequence is that the only identifier that needs to be known is the identifier of the first resource requested, and all other identifiers will be discovered. This means that those identifiers can change without the need to inform the client beforehand and that there can be only loose coupling between client and server.
Тарих
Веб 1993–1994 жылдары күнделікті қолдануға енді, жалпы қолдануға арналған веб-сайттар қолжетімді бола бастаған кезде. Ол кезде Веб архитектурасының толық емес сипаттамасы ғана болды және индустрияда Веб интерфейс протоколдары үшін бір стандартқа келісуге қысым болды. Мысалы, проксилерді қолдау үшін коммуникация протоколына (HTTP) бірнеше тәжірибелік кеңейтулер қосылды және тағы да кеңейтулер ұсынылып жатты, бірақ бұл өзгерістердің әсерін бағалау үшін ресми Веб архитектурасы қажет еді. W3C және IETF жұмыс топтары бірлесіп, Вебтің үш негізгі стандартының ресми сипаттамаларын жасау жөнінде жұмыс бастады: URI, HTTP және HTML. Рой Филдинг осы стандарттарды жасауға қатысты (әсіресе HTTP 1.0 және 1.1, URI), және келесі алты жыл ішінде ол REST архитектуралық стилін жасады, оның Веб протоколдарының стандарттарына қатысты шектеулерін сынап, архитектуралық жақсартуларды анықтау және архитектуралық үйлесімсіздіктерді анықтау құралы ретінде пайдаланды. Филдинг REST-ті 2000 жылы UC Irvine-де "Архитектуралық стильдер және желілік бағдарламалық қамтамасыз ету архитектурасының дизайны" атты PhD диссертациясында анықтады. REST архитектуралық стилін құру үшін Филдинг әлемдік желіге негізделген қосымшаны құру кезінде қолданылатын талаптарды анықтады, мысалы, жаһандық қабылдауды қамтамасыз ету үшін төмен кіру кедергісінің қажеттігі. Ол сондай-ақ желілік қосымшалар үшін көптеген қолданыстағы архитектуралық стильдерді зерттеп, кэштеу және клиент-сервер мүмкіндіктері сияқты басқа стильдермен ортақ ерекшеліктерді және ресурстар концепциясы сияқты REST-ке тән ерекшеліктерді анықтады. Филдинг қазіргі іске асырудың қолданыстағы архитектурасын жіктеуге және Вебтің мінез-құлқы мен өнімділік талаптарына қандай аспектілерді басты деп қарастыру керектігін анықтауға тырысты. Архитектуралық стильдер өзінің мәні бойынша кез келген нақты іске асырудан тәуелсіз, ал REST Веб стандарттарын дамытудың бір бөлігі ретінде құрылған болса да, Вебтің іске асырылуы REST архитектуралық стилінің барлық шектеулеріне сәйкес келмейді. Үйлесімсіздіктер білімсіздік немесе қадағалаудың нәтижесі болуы мүмкін, бірақ REST архитектуралық стилінің болуы олардың стандартталуынан бұрын анықталуы мүмкін екенін білдіреді. Мысалы, Филдинг сессиялық ақпаратты URI-ге ендіруді REST шектеулерін бұзу ретінде анықтады, бұл ортақ кэш және сервердің кеңейтілуіне теріс әсер етуі мүмкін. HTTP cookie файлдары да REST шектеулерін бұзады, өйткені олар браузердің қолданба күйімен синхронды бола алмайды, оларды сенімсіз етеді; сонымен қатар олар құпиялылық пен қауіпсіздікке қатысты алаңдатуға болатын түсініксіз деректерді қамтиды.
The Web began to enter everyday use in 1993–1994, when websites for general use started to become available. At the time, there was only a fragmented description of the Web's architecture, and there was pressure in the industry to agree on some standard for the Web interface protocols. For instance, several experimental extensions had been added to the communication protocol (HTTP) to support proxies, and more extensions were being proposed, but there was a need for a formal Web architecture with which to evaluate the impact of these changes. The W3C and IETF working groups together started work on creating formal descriptions of the Web's three primary standards: URI, HTTP, and HTML. Roy Fielding was involved in the creation of these standards (specifically HTTP 1.0 and 1.1, and URI), and during the next six years he created the REST architectural style, testing its constraints on the Web's protocol standards and using it as a means to define architectural improvements — and to identify architectural mismatches. Fielding defined REST in his 2000 PhD dissertation "Architectural Styles and the Design of Network based Software Architectures" at UC Irvine. To create the REST architectural style, Fielding identified the requirements that apply when creating a world wide network based application, such as the need for a low entry barrier to enable global adoption. He also surveyed many existing architectural styles for network based applications, identifying which features are shared with other styles, such as caching and client–server features, and those which are unique to REST, such as the concept of resources. Fielding was trying to both categorise the existing architecture of the current implementation and identify which aspects should be considered central to the behavioural and performance requirements of the Web. By their nature, architectural styles are independent of any specific implementation, and while REST was created as part of the development of the Web standards, the implementation of the Web does not obey every constraint in the REST architectural style. Mismatches can occur due to ignorance or oversight, but the existence of the REST architectural style means that they can be identified before they become standardised. For example, Fielding identified the embedding of session information in URIs as a violation of the constraints of REST which can negatively affect shared caching and server scalability. HTTP cookies also violated REST constraints because they can become out of sync with the browser's application state, making them unreliable; they also contain opaque data that can be a concern for privacy and security.
Бірыңғай интерфейс
Бірыңғай интерфейс талабы кез келген RESTful жүйенің құрылымы үшін негізгі болып табылады.
The uniform interface constraint is fundamental to the design of any RESTful system.