只有 TLS 端点1可以读取完整的 URL,因为 HTTPS 提供端到端加密。
HTTPS 包装了完整的 HTTP 协议,包括请求行、请求/响应正文和所有标头。请求 URL 只是 HTTP 的一部分,它与所有其他组件一起被加密。如果任何一方能够读取 URL,他们自然也可以访问完整的 HTTP 流量。
需要明确的是,仍有很多方式可能会无意中泄露 URL:
通过单击链接离开站点时,默认情况下,您的浏览器将发送一个Referer包含先前 URL 的标头 - 因此会向您正在浏览的站点披露。
浏览器插件可能会将您访问的 URL 发送到某处进行分析或出售。
执行“合法”HTTPS 拦截(意味着您主动安装并信任其根证书)的安全产品或企业防火墙可以读取您的 HTTP 流量,从而了解 URL。
由于 HTTPS SNI和客户端的 DNS 查询,目标站点的主机(但不是完整的 URL)通常会被泄露给潜在的窃听者。
但是假设一个正确的设置没有任何侧通道泄漏,请求 URL 就像传输的其他所有内容一样通过 TLS 隧道。
1在您的示例中,这些很可能是本地设备 (1.)和目标主机 (12.)。正如@Bob 指出的那样,TLS 连接也可以在负载均衡器或其他形式的代理处结束。