一、应用层解析
进行DNS解析:即将域名地址解析成 IP 地址
- 网络设备是通过 IP地址,作为身份标识
- 但是 IP地址不好记,所以很多时候就用一串单词 来进行表示。
- DNS就是域名和IP地址互相映射的一个分布式数据库,通过对网页进行DNS解析,我们可以找到其域名
生成HTTP请求报文
起始行:请求方法URI协议/版本(GET Gitee - 基于 Git 的代码托管和研发协作平台 HTTP/1.1)
首部:包括域名host、keep-alive、User-Agent、Accept-Encoding、Accept-Language、Cookie等信息。请求头(Request Header)请求头包含许多有关的客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求正文的长度等。
请求正文:主体内容即要传输的内容。如果是get请求,则主体内容为空
请求头和请求正文之间是一个空行,这个行非常重要,它表示请求头已经结束,接下来的是请求正文。请求正文中可以包含客户提交的查询字符串信息:
二、传输层连接
建立TCP连接-三次握手
- 客户端先向服务器发送一个 syn 同步报文段、
- 服务器收到后 返回一个 syn 和 ack
- 客户端返回一个ack确认报文段
- 经过上面 TCP 连接之后,客户端就可以向服务器发送请求了
三、服务区处理
服务器收到客户端的请求,服务器会进行响应,返回一个 HTTP响应报文
四、浏览器处理
浏览器收到 HTTP响应报文,就可以根据响应报文中的内容,对浏览器的页面进行渲染。
这时候我们的客户端浏览器页面就会出现最终页面的样子
五、断开
当数据传送完毕,需要断开 TCP连接,此时发起 TCP四次挥手。