Відсутність збереження стану (statelessness) в REST API

1. Відсутність збереження стану (statelessness)

Відповідно до архітектури REST (REpresentational “State” Transfer) сервер не зберігає жодного стану про сеанс клієнта на стороні сервера. Це обмеження називається statelessness.

Кожен запит від клієнта до сервера повинен містити всю необхідну інформацію для розуміння запиту. Сервер не може скористатися жодним збереженим контекстом на сервері.

Тому стан сеансу програми повністю зберігається на клієнті. Клієнт самостійно несе відповідальність за зберігання та обробку інформації, пов’язаної з сеансом .

Це також означає, що клієнт несе відповідальність за надсилання будь-якої інформації про стан на сервер, коли це необхідно. Між клієнтом і сервером не повинно бути спорідненості сеансу або закріпленого сеансу .

Відсутність стану означає, що кожен запит HTTP виконується повністю ізольовано. Коли клієнт робить HTTP-запит, він містить усю інформацію, необхідну серверу для виконання запиту.

Сервер ніколи не покладається на інформацію з попередніх запитів від клієнта. Якщо така інформація є важливою, клієнт надішле її як частину поточного запиту.

Щоб надати клієнтам доступ до цих API без збереження стану, необхідно, щоб сервери також включали кожну інформацію, яка може знадобитися клієнту для створення/підтримки стану на його стороні.

Щоб зберегти статус statelessness, не зберігайте навіть деталі автентифікації/авторизації клієнта. Надавайте облікові дані для автентифікації з кожним запитом.

Таким чином, кожен запит повинен бути самостійним і на нього не повинна впливати попередня розмова, яка мала місце з тим самим клієнтом у минулому.

2. Стан аплікації проти стану ресурсу

Важливо розуміти різницю між станом програми та станом ресурсу. І те, і інше – абсолютно різні речі.

Стан аплікації— це дані на стороні сервера, які сервери зберігають для ідентифікації вхідних запитів клієнтів, деталей їхньої попередньої взаємодії та поточної контекстної інформації.

Стан ресурсу – це поточний стан ресурсу на сервері в будь-який момент часу, і він не має нічого спільного з взаємодією між клієнтом і сервером. Це те, що ми отримуємо у відповідь від сервера як відповідь API. Ми називаємо це представленням ресурсу.

Statelessness REST означає відсутність стану аплікації.

3. Переваги API без збереження стану

Є деякі дуже помітні переваги використання REST API без збереження стану .

  1. Statelessness допомагає масштабувати API для мільйонів користувачів, які одночасно працюють, розгортаючи його на кількох серверах. Будь-який сервер може обробити будь-який запит, оскільки немає залежності, пов’язаної з сеансом.
  2. Statelessness робить REST API менш складними, видаляючи всю логіку синхронізації стану на стороні сервера.
  3. API без збереження стану також легко кешувати. Певне програмне забезпечення може вирішувати, кешувати чи ні результат запиту HTTP, просто переглянувши цей запит. Немає набридливої ​​невизначеності, що стан із попереднього запиту може вплинути на можливість кешування цього. Це покращує продуктивність програм.
  4. Сервер ніколи не втрачає відстеження того, «де» кожен клієнт у програмі, оскільки клієнт надсилає всю необхідну інформацію з кожним запитом.

    0 0 голосів
    Рейтинг статті
    Підписатися
    Сповістити про

    Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.

    0 Коментарі
    Старіші
    Новіші Найпопулярніші
    Вбудовані Відгуки
    Переглянути всі коментарі