# Асинхронный REST

## Синхронный (классический) REST

<div align="center"><figure><img src="https://2564959216-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBU59MeGnFEovSrJJ0r4f%2Fuploads%2Fg6oNMHiJnPHzrkGNGX2W%2Fimage.png?alt=media&#x26;token=937e4335-39bc-45b8-99f2-cd02f77f7747" alt="" width="323"><figcaption><p>Синхронный REST</p></figcaption></figure></div>

<figure><img src="https://2564959216-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBU59MeGnFEovSrJJ0r4f%2Fuploads%2FoazBxBzcwOmaqoZC5jeL%2Fimage.png?alt=media&#x26;token=5dc7fa93-428e-408f-a983-d88ce5423e16" alt="" width="364"><figcaption><p>Пример синхронного REST</p></figcaption></figure>

## Асинхронный REST

### Запрос

<figure><img src="https://2564959216-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBU59MeGnFEovSrJJ0r4f%2Fuploads%2FiSjYlJK0P4UHyB8BEHhG%2Fimage.png?alt=media&#x26;token=a813f100-c231-43f3-bed9-fe3181473641" alt="" width="375"><figcaption><p>Пример асинхронного запроса REST, где сервер возвращает код 202 - "принято"</p></figcaption></figure>

### Ответ Callback (обратный вызов)

<figure><img src="https://2564959216-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBU59MeGnFEovSrJJ0r4f%2Fuploads%2FF78CelSJG5yVTX2Fsffa%2Fimage.png?alt=media&#x26;token=0f396a2b-5113-44b5-9460-a04064976185" alt="" width="360"><figcaption><p>Пример асинхронного ответа REST, где сервер сам инициирует ответ с помощью callback</p></figcaption></figure>

### Ответ в цикле (прямой вызов)

<figure><img src="https://2564959216-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FBU59MeGnFEovSrJJ0r4f%2Fuploads%2FizOsxsLB8EeyVNXWuw9r%2Fimage.png?alt=media&#x26;token=37226ac0-41d5-412f-a73b-5cbf44fd77cd" alt="" width="365"><figcaption><p>Пример асинхронного ответа REST, где клиент инициирует ответ с помощью цикличного обращения к серверу</p></figcaption></figure>

Источник: <https://www.youtube.com/watch?v=3D2kYmEa8rk&ab_channel=%D0%90%D0%B9%D1%82%D0%B8%D0%AD%D0%BA%D1%81%D0%BF%D1%80%D0%B5%D1%81%D1%81>
