根据我的理解,如果客户端javascript代码使用XMLHttpRequest发出POST请求,它会等待响应,当它完成时,它将readystate更改为ReadyState.Complete并调用回调函数。
我的问题是:它如何确定响应是否完整?它是否返回它获得的第一个TCP数据包的内容?或者服务器是否关闭了tcp连接,从而完成了事务?或者TCP数据包内容中有什么特殊内容告诉XMLHttpRequest对象响应是否完整?
答案 0 :(得分:2)
它要么等待服务器关闭它的连接,要么等待它从响应中读取多个字节,等于响应中的Content-Length标头。
答案 1 :(得分:2)
遵循HTTP规范。响应必须具有Content-Length
或使用chunked
内容编码。在HTTP / 1.0中,关闭连接也是一个选项。