1

据我了解,如果客户端 javascript 代码使用 XMLHttpRequest 发出 POST 请求,它会等待响应,并在完成时将其 readystate 更改为 ReadyState.Complete 并调用回调函数。

我的问题是:它如何确定响应是完整的?它是否返回它获得的第一个 TCP 数据包的内容?或者服务器是否关闭了 tcp 连接从而完成了事务?还是 TCP 数据包内容中有什么特殊的东西告诉 XMLHttpRequest 对象响应已完成?

4

2 回答 2

2

它要么等待服务器关闭它的连接,要么等待它从响应中读取等于响应中 Content-Length 标头的字节数。

于 2009-06-24T20:29:13.173 回答
2

它遵循 HTTP 规范。响应必须具有Content-Length或使用chunked内容编码。在 HTTP/1.0 中,关闭连接也是一种选择。

于 2009-06-24T20:29:57.680 回答