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