大致流程

  1. URL解析
  2. DNS查询
  3. 建立TCP连接
  4. 浏览器发送HTTP请求
  5. 服务器端响应请求
  6. 渲染页面

1 URL解析

请求发起后,浏览器首先会解析URL得到协议,域名,端口,资源路径等信息

2 浏览器查找域名对应的ip地址

  1. 浏览器先检查自身的缓存中是否存在该域名和ip的映射关系,存在则直接返回ip地址;
  2. 如果没有,则检查是否存在本地主机的Hosts文件里,没有则向本地DNS服务器发送请求,本地DNS服务器一般都是你的网络接入服务器商提供,如中国移动
  3. 查询域名对应ip的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果,此过程是递归的方式进行查询。如果本地DNS服务器缓存中没有该记录,则本地DNS服务器还要向DNS根服务器进行查询
  4. 根DNS服务器没有记录具体的域名和Ip地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。这是个迭代的过程;
  5. 本地DNS服务器继续向域服务器发出请求,域服务器一般也不会直接返回域名和IP的对应关系,而是告诉本地DNS服务器,你的域名解析服务器的地址;
  6. 最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址的对应关系,本地DNS服务器把IP地址返回给用户主机,并把这个对应关系保存在缓存中。

3TCP连接

浏览器拿到域名对应ip地址后,会以随机端口向WEB服务器程序80端口发起TCP的连接请求,发起三次握手,建立连接。

浏览器输入URL到点击页面的过程
三次握手建立连接另外总结

4浏览器向WEB服务器发起HTTP请求

建立TCP连接之后,发起HTTP请求,请求一般分为三部分:
请求行(方法 url 协议版本 CRLF)
请求头(主机名,cookie等)
实体主体部分

5服务器端处理

服务器收到请求后,根据路径参数映射到特定的请求处理器进行处理,并将处理结果及相应的视图返回给浏览器;

6渲染页面

浏览器根据请求的得到的资源和数据渲染页面,最终向用户呈现一个完整的页面。

相关文章: