HTTP Синхронный характер - PullRequest
       8

HTTP Синхронный характер

0 голосов
/ 10 сентября 2018

Я прочитал, что HTTP является синхронным протоколом. Клиент отправляет запрос и ждет ответа. Клиент ожидает первого ответа перед отправкой следующего запроса. Ajax использует протокол HTTP, но в отличие от него асинхронный. Я также читал, что Асинхронный запрос блокирует клиента до завершения операции с здесь . Я в замешательстве, и мой вопрос:
1. что такое синхронное определение при разговоре по протоколу HTTP?
2. Синхронизируется ли с блокировка?

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

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

Сказав это, вы можете отправлять несколько независимых HTTP-запросов параллельно через отдельные соединения.Не существует «глобальной» блокировки для HTTP-запросов, это всего лишь один HTTP-запрос / ответ на открытое соединение. (И снова, HTTP / 2 исправляет это ограничение).

Теперь изС точки зрения приложения Javascript HTTP-запрос является асинхронным.Это означает, что Javascript отправит HTTP-запрос на сервер, а его ответ придет через некоторое время. Тем временем Javascript может продолжать работать над другими вещами, а когда приходит HTTP-ответ, он продолжитработая над этим.Это асинхронное выполнение Javascript. Javascript может принять решение дождаться ответа HTTP, заблокировать все остальное в то же время;но это довольно плохо, поскольку HTTP-ответ может занять относительную вечность по сравнению со всеми другими вещами, которые вы могли бы сделать за это время (например, поддержание отзывчивости пользовательского интерфейса).

0 голосов
/ 10 сентября 2018

Асинхронный означает, что вы делаете HTTP-запрос, но вы не ждете, пока ответ придет.Вы справитесь с этим, когда он прибудет, и сможете свободно делать другие вещи между ними.Значение: вы не блокируете ваше приложение от выполнения каких-либо других действий.

Синхронный, с другой стороны, означает, что вы делаете запрос и ждете ответа, прежде чем делать что-либо еще.Значение: вы блокируете ваше приложение от выполнения каких-либо других действий.

...