客户端如何知道 https 或 https 请求何时已完成?

客户端如何知道 https 或 https 请求何时已完成?

我想知道,例如,通过 get 请求请求网页的客户端如何准确知道何时收到了所有请求的数据,以及使用 https 和 http 示例是否没有更多数据?

谢谢

答案1

HTTP 和 HTTPS 之间没有区别,因为 HTTPS 只是通过 TLS 隧道传输的 HTTP。

回答您的问题:如果服务器发送Content-Lenght: x标头,则响应主体的尺寸应该正好是 x 个八位字节(字节),如果服务器不发送此标头,则情况会有所不同:

对于 HTTP 1.0,响应主体在服务器关闭连接后肯定会终止。对于 HTTP 1.1,情况更加复杂,因为服务器可以使用分块编码:http://greenbytes.de/tech/webdav/rfc2616.html#rfc.section.3.6.1

答案2

参考 HTTP 交换示例

HTTP 交换示例

要检索 URL 处的文件

http://www.somehost.com/path/file.html

首先打开一个套接字到主机 www.somehost.com,端口 80(使用默认端口 80,因为 URL 中未指定)。然后,通过套接字发送类似以下内容:

GET /path/file.html HTTP/1.0
From: [email protected]
User-Agent: HTTPTool/1.0
[blank line here]

服务器应通过相同的套接字返回类似下面的内容作为响应:

HTTP/1.0 200 OK
Date: Fri, 31 Dec 1999 23:59:59 GMT
Content-Type: text/html
Content-Length: 1354

<html>
<body>
<h1>Happy New Millennium!</h1>
(more file contents)
  .
  .
  .
</body>
</html>

发送响应后,服务器关闭套接字。

相关内容