Как XMLHttpRequest знает, когда вызывать его обратный вызов?

StackOverflow https://stackoverflow.com/questions/1040787

Вопрос

Из того, что я понимаю, если код javascript на стороне клиента использует запрос XMLHttpRequest для выполнения запроса POST, он ожидает ответа, а после завершения меняет свое состояние готовности на ReadyState.Complete и вызывает функцию обратного вызова.

Мой вопрос: как он определяет, что ответ завершен? Возвращает ли он содержимое первого полученного TCP-пакета? Или сервер закрывает соединение tcp и завершает транзакцию? Или в содержимом пакета TCP есть что-то особенное, что сообщает объекту XMLHttpRequest, что ответ завершен?

Это было полезно?

Решение

Он либо ждет, пока сервер закроет свое соединение, либо ожидает, пока не будет прочитано количество байтов из ответа, равное заголовку Content-Length в ответе.

Другие советы

Это соответствует спецификации HTTP. Ответ должен содержать кодировку контента Content-Length или использовать кодировку контента chunked . В HTTP / 1.0 закрытие соединения также возможно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top