Ssl URL如何转换为TCP/IP请求?
最近一位同事告诉我,HTTPS GET请求的查询字符串对第三方是可见的,我打算证明他错了。但要找到URL解析的任何明确描述都很困难 我的理解是,URL只是零星发送的,域传递到IP报头,端口传递到TCP报头,等等。在HTTPS GET的特定情况下,这意味着查询字符串将只驻留在HTTP报头中,而HTTP报头又驻留在TLS主体中,它是端到端加密的,因此是安全的 那么,我的问题有两个:Ssl URL如何转换为TCP/IP请求?,ssl,tcp,https,ip,tcp-ip,Ssl,Tcp,Https,Ip,Tcp Ip,最近一位同事告诉我,HTTPS GET请求的查询字符串对第三方是可见的,我打算证明他错了。但要找到URL解析的任何明确描述都很困难 我的理解是,URL只是零星发送的,域传递到IP报头,端口传递到TCP报头,等等。在HTTPS GET的特定情况下,这意味着查询字符串将只驻留在HTTP报头中,而HTTP报头又驻留在TLS主体中,它是端到端加密的,因此是安全的 那么,我的问题有两个: 首先,关于HTTPS GET查询字符串的特殊情况,我说得对吗 第二,有谁能为我提供一个URL的一般剖析,并着眼于它的
- 首先,关于HTTPS GET查询字符串的特殊情况,我说得对吗
- 第二,有谁能为我提供一个URL的一般剖析,并着眼于它的各个部分如何转换为TCP/IP请求
https://host.example:port/something?blabla=1
,这是对发生的情况的概述:
- 您的浏览器建立到主机的TCP连接。示例在该端口上
- 由于它是一个
URL,因此建立了SSL/TLS连接。SSL/TLS堆栈应该验证证书以及它是否与您要查找的主机名匹配https://
- 在这个SSL/TLS连接之上(当使用普通HTTP时,它将直接位于TCP连接之上),您的浏览器发送如下内容:
所有这些都是通过SSL/TLS发送的。请注意,严格来说,查询参数是URL不可分割的一部分,是发送的GET /something?blabla=1 HTTP/1.1 Host: host.example:port .... (other headers)
您可以在中找到有关HTTP(最近被取代)和HTTPS的详细信息。IP头不会使用URL或域或类似的内容,但它们封装的TCP会使用。在这种情况下,封装的所有内容都是加密的 我认为值得指出的是,虽然您可能看不到很多给定的HTTPS消息,但是
GET https://example.com/query?q=text
我相信您会在clear中看到一个DNS请求作为“示例”;其他所有内容都将在HTTPS中加密。所有这些都表明在主机解析步骤中不要忘记加密。它不在IP报头中,这就是IP地址的用途。但我们必须通过DNS获取这些地址