Использование 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.