1.在浏览器地址栏输入网址
2、浏览器获取到这个URL后,首先会去缓存中查看是否有可以访问的资源,从浏览器缓存-系统缓存-路由缓存中查找。 如果有,就不再发出hhtp请求,直接从缓存中加载。 资源。 否则进行步骤3。(缓存是将之前访问过的网页资源,如css、js、图片等资源保存在本地内存或磁盘中)
3、浏览器获取到域名后,自动向DNS( Name )服务器发起请求,查询用户输入的域名对应的IP地址(设置域名是为了方便人类记忆,机器识别IP地址)
4、浏览器获取到IP地址后,通过IP地址和端口号与服务器建立TCP连接。 (建立TCP连接需要三次“握手”,这才是可靠的连接,可以确认数据是否最终传递到目标)
上图展示了三路“握手”过程。
发送方首先向服务器发送带有SYN标志的数据包。 服务器收到后,发回带有SYN/ACK标志的数据包,传达确认信息。 最后,发送端发回带有ACK标志的数据包,表示“握手”结束。
5、三向“握手”成功建立连接后,浏览器开始向服务器发起http请求,并将请求信息封装成请求消息(包括请求行、请求头、空行、请求体) )通过http协议,然后发送到服务器
6、服务器收到客户端浏览器发送的请求消息后,根据HTTP协议解析该请求消息。
7、然后服务器取出请求消息中的请求信息(如请求路径URL),进行相应的业务逻辑处理操作。
8、业务逻辑处理操作完成后,服务器将发送给浏览器的数据按照http协议封装成响应消息(响应行、响应头、空行、响应体)。
9.然后服务器将响应消息发送给浏览器
10、浏览器收到响应消息后,根据HTTP协议解析响应消息。
11、浏览器获取响应消息中的响应体数据并开始渲染html和css,并执行
12、如果在解析过程中(从上到下),发现外部链接标签(link、css、img)
13、浏览器会自动向标签指向的路径地址发起新的请求,同上。
—————————————————