当在浏览器地址栏输入一个网址(如:https://www.baidu.com)),回车,出现网页内容。
整个过程可分为四步:
1.域名解析
将用户输入的URL解析成对应的ip地址;
2.TCP连接
得到ip地址后,客户端与服务器进行三次握手建立连接;
- 第一次握手:客户端向服务器发送一个同步数据包,数据包的TCP首部内容:SYN=1,ACK=0;
- 第二次握手:服务器收到后,向客户端发送一个数据包回应,数据包的TCP首部内容为:SYN=1,ACK=1;
- 第三次握手:客户端收到后,再向服务器发送一个数据包,数据包的TCP首部内容为:SYN=0,ACK=1。
3.发送http请求
浏览器按照http请求报文结构组装数据,并将数据发送至服务器;
请求报文格式:
- 第一行:请求方式、URL、协议版本;
- 请求头(多行);
- 一个空行,用于分隔请求头和请求体;
- 请求体
4.接受http响应
处理完请求后,将响应结果放入响应报文返回给客户端浏览器;
响应报文解构:
- 第一行:协议版本、状态码以及描述
- 响应头(多行);
- 一个空行,用于分隔响应头和响应体;
- 响应体
5.渲染响应内容
将响应结果通过html渲染展示给用户.