打开一个页面,整个过程会使用哪些协议?
网络通信模型可以用下图来简单表示,根据下面这个顺序,我们来说明,打开一个页面,整个过程会使用哪些协议?
首先,我们可以梳理一个简单的完整流程:
1.在浏览器中输入指定网页的URL地址;
2.浏览器通过DNS协议解析域名,获取对应的IP地址;
3.浏览器根据IP地址和端口号,与目标服务器建立TCP连接;
4.浏览器在TCP连接上发送HTTP请求报文,请求获取网页的内容;
5.服务器接收到HTTP请求后,处理请求并返回HTTP响应报文给浏览器;
6.浏览器收到HTTP响应报文后,解析响应体中的HTML代码,渲染网页的结构和样式,同时根据HTML中的其他资源的URL(如图片、CSS、JS等),再次发起HTTP请求,获取这些资源的内容,直到网页完全加载显示;
7.当浏览器不再需要与服务器通信时,它可以主动关闭TCP连接,或者等待服务器发起关闭连接的请求。
1.应用层
1.在浏览器中输入指定网页的URL地址;
URL((Uniform Resource Locator,统一资源定位符)。互联网上的每一个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
URL基本格式
URL具体格式
https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9118781422654834654%22%7D&n_type=-1&p_from=-1
可以看到在这个URL中有些信息被省略了。
1.协议: **https: ** 表示协议方案。URL 的前缀通常表示了该网址采用了何种应用层协议,常见有两种——HTTP 和 HTTPS。也有其他类型(比如文件传输时用到的 ftp: ,访问mysql时用的jdbc:mysql);
2.登录信息: 现在的网站进行身份认证一般不会通过URL进行,一般会省略;
3.域名: **mbd.baidu.com: **服务器地址,此处是一个域名,域名便是访问网址的通用名(也有可能是IP地址),域名会通过DNS系统解析成一个具体的IP地址(可以通过ping命令看到地址);
4.端口: 在上面的URL中端口号被省略了,当端口号省略的时候, 浏览器会根据协议类型自动决定使用哪个端口. 例如 http 协议默认使用 80 端口,https 协议默认使用 443 端口;
5.资源路径: /newspage/data/landingsuper: 带层次的文件路径,早先的设计是该文件通常物理存储于服务器主机上,但现在随着网络技术的进步,该文件不一定会物理存储在服务器主机上,有可能存放在云上,而文件路径也有可能是虚拟的(遵循某种规则)。
6.参数: context=%7B%22nid%22%3A%22news_9118781422654834654%22%7D&n_type=-1&p_from=-1,查询字符串(query string),本质上是一个键值对的形式 key=value,键值对之间使用&分隔,键和值之间使用=分隔。
7.片段标识: 这里的URL忽略了片段标识,片段标识主要用于页面内跳转。(例如 Vue 官方文档:
https://cn.vuejs.org/v2/guide/#%E8%B5%B7%E6%AD%A5, 通过不同的片段标识跳转到文档的不同章节)
2.浏览器通过DNS协议解析域名,获取对应的IP地址;
DNS
输入URL之后,里面的域名会通过DNS系统解析成一个具体的IP地址。
DNS,全称为域名系统(Domain Name System),是一种负责将域名解析为IP地址的系统。它由解析器和域名服务器组成,是互联网中至关重要且广泛应用的一个服务。
链接:DNS(域名解析系统)
4.浏览器在TCP连接上发送HTTP请求报文,请求获取网页的内容;
5.服务器接收到HTTP请求后,处理请求并返回HTTP响应报文给浏览器;
6.浏览器收到HTTP响应报文后,解析响应体中的HTML代码,渲染网页的结构和样式,同时根据HTML中的其他资源的URL(如图片、CSS、JS等),再次发起HTTP请求,获取这些资源的内容,直到网页完全加载显示;
HTTP/HTTPS
使用DNS,拿到目标主机的IP地址之后,浏览器可以通过目标IP地址发送请求。
链接:HTTP
链接:HTTPS
2.传输层
3.浏览器根据IP地址和端口号,与目标服务器建立TCP连接;
7.当浏览器不再需要与服务器通信时,它可以主动关闭TCP连接,或者等待服务器发起关闭连接的请求。
HTTP协议是基于TCP协议的,在应用层数据封装好后,交给传输层,经过TCP协议继续封装。
TCP协议一: TCP协议之特点和首部格式
TCP协议二: TCP协议之可靠传输
TCP协议三: TCP的三次握手和四次挥手
TCP协议四: TCP协议中的几个机制
3.网络层
2.浏览器通过DNS协议解析域名,获取对应的IP地址;
3.浏览器根据IP地址和端口号,与目标服务器建立TCP连接;
网络层的的核心功能——转发与路由:
转发:将分组从路由器的输入端口转移到合适的输出端口;
路由:确定分组从源到目的经过的路径。
IP协议
我们需要了解IP是什么和IP协议。
链接:IP协议
以上就是打开一个页面,整个过程会使用哪些协议的总结