<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Электронный научно-практический журнал «Современные научные исследования и инновации» &#187; веб-архитектура</title>
	<atom:link href="http://web.snauka.ru/issues/tag/veb-arhitektura/feed" rel="self" type="application/rss+xml" />
	<link>https://web.snauka.ru</link>
	<description></description>
	<lastBuildDate>Sat, 18 Apr 2026 09:41:14 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Использование REST-архитектуры в современных веб-приложениях</title>
		<link>https://web.snauka.ru/issues/2019/02/88775</link>
		<comments>https://web.snauka.ru/issues/2019/02/88775#comments</comments>
		<pubDate>Thu, 28 Feb 2019 04:48:55 +0000</pubDate>
		<dc:creator>Сергеев Олег Андреевич</dc:creator>
				<category><![CDATA[05.00.00 ТЕХНИЧЕСКИЕ НАУКИ]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[веб]]></category>
		<category><![CDATA[веб-архитектура]]></category>
		<category><![CDATA[интернет]]></category>
		<category><![CDATA[информатика]]></category>
		<category><![CDATA[разработка]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/?p=88775</guid>
		<description><![CDATA[Для более четкого понимания особенностей архитектуры REST рассмотрим понятие веб-приложений и их целевое назначение. Веб-приложение или, как его ещё называют веб-сервис, представляет собой программный модуль, который используется для решения единичных или комплексных задач в сети. Основными плюсами веб-приложений является незначительная связанность между собой, легкость интеграции и возможность переиспользования компонентов приложения. Веб-сервисы могут быть написаны на [...]]]></description>
			<content:encoded><![CDATA[<p dir="ltr">Для более четкого понимания особенностей архитектуры REST рассмотрим понятие веб-приложений и их целевое назначение. Веб-приложение или, как его ещё называют веб-сервис, представляет собой программный модуль, который используется для решения единичных или комплексных задач в сети. Основными плюсами веб-приложений является незначительная связанность между собой, легкость интеграции и возможность переиспользования компонентов приложения. Веб-сервисы могут быть написаны на различной архитектуре, но в последнее время особенную популярность приобрела архитектура REST.</p>
<p dir="ltr">Аббревиатура REST (Representational state transfer, передача состояния представления) была впервые использована в 2000 году Роем Филдингом в своей диссертации «Архитектурные стили и дизайн сетевых программных архитектур»[1]. Филдинг описал систему, при которой каждый запрос клиента к серверу несет в себе исчерпывающую информацию об ожидаемом ответе сервера, а также серверу не обязательно хранить информацию о состоянии клиента.  Системы, которые работают на основе архитектуры REST и отвечают ее требованиям, называют Restful системами.</p>
<p dir="ltr">При разработке веб-приложения, работающего на архитектуре REST используются следующие основные принципы:</p>
<ul>
<li>Использование HTTP-методов</li>
<li>Нет возможности сохранить состояние</li>
<li>Данные предоставляются в URL в структуре, аналогичной структуре каталогов</li>
</ul>
<p dir="ltr">В стандартной ситуации архитектура REST является простым и хорошо документированным инструментом управления информацией: каждая единица информации однозначно определяется идентификатором, имеющим строго заданный формат. При использовании HTTP-методов создается структура URL-адресов, а передавать данные принято в первозданном виде, в формате JSON, так как его структура «ключ:значение» позволяет легко оперировать данными как в исполняемом коде на сервере, так и в клиентских приложениях, но сама архитектура REST не предполагает явных ограничений для представления данных[2].</p>
<p dir="ltr">Каждой единице информации в REST дается однозначное определение в системе URL–адресов, это значит, что адрес и является первичным ключом для единицы информации. Например, для каталога книг по авторам для получения списка книг автора с идентификатором равным 2, URL адрес будет выглядеть как /author/2, а для десятой книги этого автора —  /author/2/book/10.</p>
<p dir="ltr">Именно это и подразумевается под строго заданным форматом данных. При этом формат данных по полученному адресу /author/2/book/10 не имеет никакого значения – это может быть и сама книга в вид файла формата *.doc, и фото ее обложки, и ссылка на статью об этой книге в интернет-библиотеке.</p>
<p dir="ltr">Управление информации в данном сервисе целиком и полностью базируется на протоколе передачи данных HTTP и его методах: GET (получить), PUT (добавить, заменить), POST (добавить, изменить), DELETE (удалить). Таким образом, в архитектуре доступы  действия CRUD (Create, Read, Update, Delete) и они могут выполняться как с использованием всех 4-х программ, так и на основе только GET и POST[3].</p>
<p dir="ltr">Для большей наглядности можно рассмотреть пример использования архитектуры REST для создания веб-приложения.</p>
<ul>
<li>GET /author/ — получить список всех авторов в Базе Данных приложения</li>
<li>GET /author/10/ — получить информацию об авторе с идентификатором 10</li>
<li>POST /author/ — добавить книгу (данные должны быть отправлены в теле HTTP-запроса)</li>
<li>PUT /author/10 – изменить информацию об авторе с идентификатором 10 (данные должны быть отправлены в теле HTTP-запроса)</li>
<li>DELETE /author/10 – удалить информацию об авторе с идентификатором 10</li>
</ul>
<p dir="ltr">Для серверного приложения, построенного на принципах REST важно получить запрос, который несет в себе информацию об ожидаемом ответе сервера, такой информацией могут быть заголовки HTTP-запроса, headers, в которых будут указаны формат тела запроса, ожидаемый формат ответа для клиента, язык системы, информация о браузере и другое.  В свою очередь, сервер укажет в ответе заголовки с аналогичной информацией о теле ответа и информацией о коде состояния. Эти коды делят на информационные, успешные, сигнал о перенаправлении, ошибки клиента и ошибки сервера[4].</p>
<p dir="ltr">Пример заголовков ответа сервера на GET-запрос:</p>
<blockquote>
<p dir="ltr">GET / HTTP/1.1<br />
Host: helloworld.com<br />
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<br />
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8<br />
Accept-Language: ru,en-us;q=0.7,en;q=0.3<br />
Accept-Charset: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7</p>
</blockquote>
<p dir="ltr"><strong>Заключение</strong></p>
<p dir="ltr">Основным преимуществом архитектуры REST является простота её использования. Цель и функции поступившего запроса можно определить сразу по его виду и нет необходимости разбираться в форматах в отличие от SOAP и XML. Данные передаются без применения дополнительных слоев, поэтому REST считается менее ресурсоемким и, следовательно, более производительным, поскольку не надо приводить запрос в читаемый формат.</p>
<p dir="ltr">Основным преимуществом архитектуры является простота внедрения в любой проект, будь то веб-сайт, приложения для мобильных устройств или программа для настольных компьютеров.</p>
<p>Архитектура REST – инструмент, благодаря которому задача создания интерфейса программы становится значительно проще. Конечно, при решении реальных задач по разработке возникает необходимость предусмотреть возможность защиты приложений от несанкционированного доступа, чтобы каждый не мог получить к доступ к информации и возможность изменять ее, данную проблему принято решать использованием HTTP-Authentication, JSON Web Token или других сессий различного типа.</p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/issues/2019/02/88775/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
