概述
对于从输入网址到看到相应的界面大致有以下的几个过程
- 域名解析–将输入的域名转换为对应的IP地址
- 通过IP地址建立连接
- 发送http请求
- 服务器收到请求并响应
- 客户端收到服务器的响应信息并进行各种操作
域名解析
域名解析就是将我们输入的各种字符串(域名)解析为对应的IP地址的过程。
以下是查询的过程 1
- 从缓存中查询。
这个从缓存中查询一般分为两种:1、从浏览器的缓存记录中查询。2、从操作系统的缓存中进行查询。
- 从操作系统的host文件中查询。
操作系统中的映射文件是不可以动态修改的,只要你不主动改,那这个永远就是这个样子,不像之前的缓存,可以修改,也可以清空。
以win10来说,在C:\Windows\System32\drivers\etc文件夹下可以看到一个名叫hosts的文件,这个就是win10的映射文件,以txt格式打开就能看到几个的映射,最常见的就是127.0.0.1。
- 找到TCP/IP设置的参数中的DNS服务器地址(本地DNS服务器),发送请求,查询这个域名对应的IP地址。
- 如果要查询的域名并不由本地的DNS服务器解析,但是在本地DNS服务器中已经有这个网址的映射关系,则调用这个IP地址映射,完成解析,此解析不具有权威性。
- 如果之前的几个流程都不能成功的解析,那么就根据本地的DNS服务器的设置(是否设置转发器)进行查询。如果未启用转发模式,本地DNS服务器就直接将请求发至13台根DNS服务器,然后就是一通操作,具体的看参考文章。如果启用了转发,那就交给其上一级的DNS服务器进行解析,以此类推。
数据传输
http协议在传输层使用的是TCP协议,因此在传输数据的时候要先建立连接。
然后再传输数据。
三次握手和四次挥手的详解直接进下面的这个传送门,个人感觉写的挺好的。
TCP的三次握手与四次挥手理解及面试题(很全面)
响应请求
服务器收到用户的请求,然后根据请求返回信息。
返回请求信息
服务器处理完请求之后就要把用户所需要的数据发送回去,这个过程和发送数据的过程类似。
当数据发送完毕之后这个请求就结束了,在最前面建立的连接就要进行关闭。
解析数据
当浏览器收到返回的数据之后就要进行解析操作,如果是一个网页就将其解析出来,展现给用户。
参考文章
DNS原理及其解析过程【精彩剖析】
HTTP协议—— 简单认识TCP/IP协议
HTTP协议分析
没有找到统一的标准,如有错误还请指点。 ↩︎