Использование REST-архитектуры в современных веб-приложениях
Анализ архитектурного стиля REST для упрощения архитектуры приложений и повышения их производительности. Основные черты этой архитектуры, возможности и примеры ее использования. Примеры использования архитектуры REST для создания веб-приложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 27.04.2019 |
Размер файла | 15,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Использование REST-архитектуры в современных веб-приложениях
Сергеев Олег
Аннотация
С развитием интернет-технологий современные веб-приложения постоянно становятся сложнее, получая большее распространение в работе пользователей. Для упрощения архитектуры приложений и повышения их производительности, Рой Филдинг, один из авторов HTTP-протокола, разработал архитектурный стиль REST. В этой статье речь пойдет об основных чертах этой архитектуры, возможностях и примерах ее использования.
Ключевые слова: http, json, rest, Web, веб, веб-архитектура, интернет, информатика, разработка
Для более четкого понимания особенностей архитектуры REST рассмотрим понятие веб-приложений и их целевое назначение. Веб-приложение или, как его ещё называют веб-сервис, представляет собой программный модуль, который используется для решения единичных или комплексных задач в сети. Основными плюсами веб-приложений является незначительная связанность между собой, легкость интеграции и возможность переиспользования компонентов приложения. Веб-сервисы могут быть написаны на различной архитектуре, но в последнее время особенную популярность приобрела архитектура REST.
Аббревиатура REST (Representational state transfer, передача состояния представления) была впервые использована в 2000 году Роем Филдингом в своей диссертации «Архитектурные стили и дизайн сетевых программных архитектур»[1]. Филдинг описал систему, при которой каждый запрос клиента к серверу несет в себе исчерпывающую информацию об ожидаемом ответе сервера, а также серверу не обязательно хранить информацию о состоянии клиента. Системы, которые работают на основе архитектуры REST и отвечают ее требованиям, называют Restful системами.
При разработке веб-приложения, работающего на архитектуре REST используются следующие основные принципы:
Использование HTTP-методов
Нет возможности сохранить состояние
Данные предоставляются в URL в структуре, аналогичной структуре каталогов
В стандартной ситуации архитектура REST является простым и хорошо документированным инструментом управления информацией: каждая единица информации однозначно определяется идентификатором, имеющим строго заданный формат. При использовании HTTP-методов создается структура URL-адресов, а передавать данные принято в первозданном виде, в формате JSON, так как его структура «ключ:значение» позволяет легко оперировать данными как в исполняемом коде на сервере, так и в клиентских приложениях, но сама архитектура REST не предполагает явных ограничений для представления данных[2].
Каждой единице информации в REST дается однозначное определение в системе URL-адресов, это значит, что адрес и является первичным ключом для единицы информации. Например, для каталога книг по авторам для получения списка книг автора с идентификатором равным 2, URL адрес будет выглядеть как /author/2, а для десятой книги этого автора -- /author/2/book/10.
Именно это и подразумевается под строго заданным форматом данных. При этом формат данных по полученному адресу /author/2/book/10 не имеет никакого значения - это может быть и сама книга в вид файла формата *.doc, и фото ее обложки, и ссылка на статью об этой книге в интернет-библиотеке.
Управление информации в данном сервисе целиком и полностью базируется на протоколе передачи данных HTTP и его методах: GET (получить), PUT (добавить, заменить), POST (добавить, изменить), DELETE (удалить). Таким образом, в архитектуре доступы действия CRUD (Create, Read, Update, Delete) и они могут выполняться как с использованием всех 4-х программ, так и на основе только GET и POST[3].
Для большей наглядности можно рассмотреть пример использования архитектуры REST для создания веб-приложения.
GET /author/ -- получить список всех авторов в Базе Данных приложения
GET /author/10/ -- получить информацию об авторе с идентификатором 10
POST /author/ -- добавить книгу (данные должны быть отправлены в теле HTTP-запроса)
PUT /author/10 - изменить информацию об авторе с идентификатором 10 (данные должны быть отправлены в теле HTTP-запроса)
DELETE /author/10 - удалить информацию об авторе с идентификатором 10
Для серверного приложения, построенного на принципах REST важно получить запрос, который несет в себе информацию об ожидаемом ответе сервера, такой информацией могут быть заголовки HTTP-запроса, headers, в которых будут указаны формат тела запроса, ожидаемый формат ответа для клиента, язык системы, информация о браузере и другое. В свою очередь, сервер укажет в ответе заголовки с аналогичной информацией о теле ответа и информацией о коде состояния. Эти коды делят на информационные, успешные, сигнал о перенаправлении, ошибки клиента и ошибки сервера[4].
Пример заголовков ответа сервера на GET-запрос:
GET / HTTP/1.1 веб архитектура rest приложение
Host: helloworld.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Charset: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7
Заключение
Основным преимуществом архитектуры REST является простота её использования. Цель и функции поступившего запроса можно определить сразу по его виду и нет необходимости разбираться в форматах в отличие от SOAP и XML. Данные передаются без применения дополнительных слоев, поэтому REST считается менее ресурсоемким и, следовательно, более производительным, поскольку не надо приводить запрос в читаемый формат.
Основным преимуществом архитектуры является простота внедрения в любой проект, будь то веб-сайт, приложения для мобильных устройств или программа для настольных компьютеров.
Архитектура REST - инструмент, благодаря которому задача создания интерфейса программы становится значительно проще. Конечно, при решении реальных задач по разработке возникает необходимость предусмотреть возможность защиты приложений от несанкционированного доступа, чтобы каждый не мог получить к доступ к информации и возможность изменять ее, данную проблему принято решать использованием HTTP-Authentication, JSON Web Token или других сессий различного типа.
Библиографический список
1. Архитектура REST // Хабрахабр. URL: https://habrahabr.ru/post/38730/ (дата обращения: 20.02.2019).
2. HTTP Authentication: Basic and Digest Access Authentication // The Internet Engineering Task Force. URL: https://tools.ietf.org/html/rfc2617 (дата обращения: 21.02.2019).
3. The OAuth 2.0 Authorization Framework // The Internet Engineering Task Force. URL: https://tools.ietf.org/html/rfc6749 (дата обращения: 21.02.2019).
4. Hypertext Transfer Protocol -- HTTP/1.1. URL:https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html (дата обращения: 21.02.2019).
Размещено на Allbest.ru
...Подобные документы
Проблемы создания многоядерных процессоров, новейшие классификации и перспективы развития. Особенности реализации многоядерной архитектуры: параллельные вычисления, программное обеспечение. Инструментарий для разработки многопоточных приложений.
курсовая работа [605,4 K], добавлен 21.03.2013Выбор и обоснование аппаратного обеспечения. Типы архитектуры веб-приложений. Шаблоны проектирования архитектуры приложения. Разработка инфологической модели базы данных. Подготовка к разработке приложения. Рассмотрение причин возникновения паттернов.
дипломная работа [3,0 M], добавлен 27.11.2022Анализ архитектуры информационной системы, в структуру которой входят системы файл-сервер и клиент-сервер. Сравнение языков запросов SQL и QBE. Принципы разработки приложений архитектуры клиент-сервер при помощи структурированного языка запросов SQL.
курсовая работа [88,9 K], добавлен 11.04.2010Ознакомление с проблемами реализации сервис-ориентированной архитектуры предприятия. Анализ активных элементов бизнес-архитектуры. Рассмотрение инструментов реализации языка ArchiMate в программном средстве Archi. Исследование мотивационных концепций.
курсовая работа [2,0 M], добавлен 25.08.2017Понятие архитектуры программного обеспечения (ПО). Характеристика этапов процесса проектирования и его окончательный продукт. Языки описания и виды архитектуры ПО, базовые фреймворки. Функции разработчика архитектуры ПО и необходимые ему навыки работы.
реферат [85,0 K], добавлен 15.02.2014Цели архитектуры Safe компании Cisco для безопасности корпоративных сетей. Необходимость защиты от хакерского взлома маршрутизаторов, коммутаторов, хостов, приложений. Демилитаризованная зона и межсетевые экраны в реализации собственной архитектуры.
отчет по практике [3,4 M], добавлен 20.07.2012Понятие, сущность, назначение, структура и принципы архитектуры ЭВМ. Основополагающие принципы логического устройства ЭВМ и ее структура по фон Нейману. Основные методы классификации компьютеров. Характерные особенности архитектуры современных суперЭВМ.
реферат [103,3 K], добавлен 26.03.2010Структура процессора Pentium, суперскалярность, основные особенности архитектуры. Организация конвейера команд, правила объединения. Дополнительные режимы работы процессора. Источники аппаратных прерываний. Формат ММХ команды. Процессор Pentium 4, схемы.
лекция [4,0 M], добавлен 14.12.2013Характеристики новых возможностей процессора Pentium III, созданных для повышения производительности в мультимедиа и информационных приложениях. Основные черты SIMD-команд, область их применения и примеры использования. Операции над упакованными данными.
презентация [212,5 K], добавлен 11.12.2013Описания программного продукта компании 1С, предназначенного для быстрой разработки прикладных решений. Исследование типов архитектур построения баз данных. Технология с сетью и файловым сервером. Анализ особенностей трехзвенной архитектуры клиент-сервер.
курсовая работа [401,4 K], добавлен 12.01.2015Основные характеристики процессора: быстродействие, тактовая частота, разрядность, кэш. Параметры материнской платы. Исследование архитектуры домашнего компьютера. Соотношение частоты памяти и системной шины в смартфоне, количество слотов памяти.
лабораторная работа [1,1 M], добавлен 26.12.2016Элементы и классификация компьютеров. Представление информации, устройства ввода и вывода. Специфика программного обеспечения и организация файлов на дисках. Программно-методический комплекс для изучения архитектуры ЭВМ на базе учебной модели "Нейман".
курсовая работа [253,3 K], добавлен 23.04.2011Архитектуры вычислительных систем сосредоточенной обработки информации. Архитектуры многопроцессорных вычислительных систем. Классификация и разновидности компьютеров по сферам применения. Особенности функциональной организации персонального компьютера.
контрольная работа [910,2 K], добавлен 11.11.2010Элементы объектно-ориентированного программирования. Среда Visual Studio: улучшения интегрированной среды разработки и увеличение ее производительности. Проектирование архитектуры программы и ее интерфейса. Использование двухуровневой системы приложения.
курсовая работа [516,8 K], добавлен 09.08.2015Комплексные характеристики возможностей микропроцессора, базовая структура системы. Понятие архитектуры микропроцессора. Классификации микропроцессоров по типу архитектуры. Особенности программного и микропрограммного управления, режимы адресации.
реферат [100,7 K], добавлен 20.09.2009Этапы развития веб-дизайна. Виды и типы веб-сайтов, теоретические аспекты их создания. Структура веб-сайта и его страниц. Процесс и результат разработки веб-дизайна. Создание сайта факультета архитектуры и дизайна Кубанского государственного университета.
дипломная работа [4,6 M], добавлен 10.11.2015Анализ архитектуры ОС Windows 8. Сравнение с предыдущими версиями (интерфейс Modern UI, работа с учетными записями, модель безопасности, диспетчер задач, история файлов, восстановление системы, Storage Spaces). Особенности различных версий Windows 8.
курсовая работа [289,1 K], добавлен 25.01.2016Описание технологии ASP.NET исполняемой на платформе Net FrameWork, ее преимущества. Возможности применения коллекции ViewState. Примеры использования шаблонов. Основные контролы Web приложений. Разработка программы-словаря с использованием ASP.NET.
курсовая работа [1,2 M], добавлен 13.09.2012Проектирование архитектуры корпоративной информационной системы (КИС), учитывающей применение методов извлечения смыслового и структурного содержания электронного документа. Понятие и сущность электронного документа. Оценка эффективности архитектуры КИС.
дипломная работа [3,9 M], добавлен 11.07.2016Создание клиент-серверного приложения "Чат" с помощью среды визуальной разработки приложений Borland C++ Builder версии 6. Описание функциональности приложения: наличие клиент-серверной архитектуры, обмен короткими сообщениями, а также передача файлов.
курсовая работа [302,0 K], добавлен 30.01.2012