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