Значение слова «без гражданства» в покое и http - PullRequest
0 голосов
/ 03 января 2019

Когда я читаю документы о том, что такое REST, они всегда говорят, что REST api не должен иметь состояния. Здесь я чувствую себя немного неловко, поскольку простой HTTP также не имеет состояния.

Поскольку можно сказать, что REST - это специальная архитектура, использующая протоколы HTTP, кажется излишним говорить, что REST не должен иметь состояния.

Означает ли слово «без состояний» одно и то же в REST и HTTP? Если нет, пожалуйста, скажите мне разницу


Я не спрашиваю значение безгражданства в http, но разница между состояниями в состоянии покоя и http

Ответы [ 3 ]

0 голосов
/ 03 января 2019

REST означает передачу представительского состояния, что означает, что состояние является представительским. Механизм отслеживания запросов или сеанс не сохраняется на сервере API. Состояние запроса может быть перенесено на другие серверы API.

Более того, соглашение, такое как GET / users /: id, гласит, что каждый ресурс имеет встроенный в URL механизм идентификации, таким образом, нет необходимости отслеживать ресурсы в запросе, поскольку сам URL-адрес содержит информацию запроса клиентского ресурса, например: GET / users / 1, PUT /users/1.

0 голосов
/ 03 января 2019

Означает ли слово «без состояния» одно и то же в REST и HTTP?

Да.

Причина, по которой они совпадают, заключается в том, что HTTPследствие REST.

С 1994 года архитектурный стиль REST используется для руководства проектированием и развитием архитектуры для современного Интернета - Fielding, 2000 .

До своей диссертации Филдинг был автором RFC 2068 и RFC 2616 .

Только для пояснения, могВы говорите мне, что «принципы, которые теперь называются REST, были усовершенствованы в работе Филдинга по HTTP».означает?

Раздел первый из Размышления о архитектурном стиле REST включает временную шкалу: первые реализации HTTP были в 1990-91 гг., Филдинг начал участвовать в 1993 г. Во время спецификацииprocess ( RFC 1945 , RFC 2068 , RFC 2616 ) Филдинг разработал «объектную модель HTTP», которая позже стала пониматься как «архитектурный стиль REST».

Первое издание REST было разработано в период с октября 1994 г. по август 1995 г., главным образом, как средство для передачи веб-концепций, когда мы писали спецификацию HTTP / 1.0 и первоначальное предложение HTTP / 1.1. Fielding

То есть идеи REST развивались параллельно со стандартизацией HTTP, чтобы служить оракулом: как мы можем оценить, является ли предложениеповредит или разрушит важные свойства сети?

В разделе 6.3.4 тезиса описаны последствия некоторых ошибокТочки, которые были стандартизированы.

0 голосов
/ 03 января 2019

Отсутствие состояния в терминах HTTP означает, что каждый запрос не знает ни о каком предыдущем запросе, т. Е. В HTTP нет встроенного механизма для отслеживания того, кто делает запросы, и последствий этих запросов.

В терминах сервисов RESTful это означает, что каждый запрос не зависит от состояния, например, сохраненной информации клиента, для выполнения запроса - вся информация, необходимая для выполнения запроса, содержится в сообщении запроса (операция CRUD , рассматриваемый ресурс, токены аутентификации, идентификация платформы приложения и т. д.).

Это означает, что ваш RESTful API должен защищаться многоуровневой архитектурой, которая управляет аутентификацией, управлением сеансами и другими операциями, не относящимися к RESTful.

В этом контексте и сервисы RESTful, и HTTP должны работать с одинаковыми ограничениями: отсутствие состояния (как определено выше).


Может показаться интуитивно понятным проектировать REST API, подобный этому, но вы будете удивлены тесной связью, заложенной в ядре многих служб REST:

GET /users/:id

if authenticated and authorized //not stateless
    send User resource

Чтобы бороться с этим, большинство каркасов HTTP предоставляют слои промежуточного программного обеспечения.


Полезные вопросы REST-дизайна:

...