这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
通过前面的学习,我们已经获得了传输协议、目标的域名,还通过DNS服务器拿到了目的IP,并使用TCP与TLS建立了信息传输顺畅安全的通道。现在我们需要构建请求报文来发送我们需要送到目的服务器的数据。
要构建HTTP请求报文需要以下的步骤:
- 确定请求方法和URL:HTTP请求报文中包含一个请求方法和请求URL。请求方法指示服务器客户端要执行的操作类型,例如GET,POST,PUT等。URL指定要请求的资源的地址,例如www.example.com/index.html。
- 添加请求头部:HTTP请求报文中还包含一个或多个头部字段,用于提供有关请求的额外信息。例如,Accept头指定客户端可以接受哪些媒体类型的响应,User-Agent头指定客户端使用的浏览器类型。
- 序列化请求:序列化是将请求报文转换为字节流的过程。在这个过程中,请求报文按照特定的格式进行编码,并添加必要的控制字符。
- 添加TCP/UDP请求头:TCP和UDP是网络传输协议,它们是用于在计算机之间传输数据的规则。当客户端向服务器发送HTTP请求报文时,请求报文必须被封装在一个TCP或UDP数据包中。TCP数据包包括源IP地址,目标IP地址,源端口号,目标端口号,序列号和确认号等字段,UDP数据包包括源IP地址,目标IP地址,源端口号,目标端口号,长度和校验和等字段。
- TLS加密:TLS是一种用于安全通信的协议。当客户端和服务器之间进行通信时,可以使用TLS加密来确保传输数据的机密性和完整性。TLS协议在TCP连接的基础上提供加密服务,TLS握手协议负责建立加密通道。在TLS握手期间,客户端和服务器协商加密算法和密钥,以确保通信数据的安全性。
- 发送请求 最后一步是将HTTP请求报文发送到服务器。客户端通过使用TCP或UDP传输协议将请求报文发送到服务器的IP地址和端口号。当服务器接收到请求报文时,它会解析请求头部,确定请求的资源,并响应客户端请求。
总之,构建HTTP请求报文的过程包括确定请求方法和URL,添加请求头部,序列化请求,添加TCP/UDP请求头,TLS加密以及发送请求等步骤。每个步骤都是为了确保通信过程的安全性和可靠性。