在浏览器中输入一个url后会发生什么

输入一个url后大约需要经过以下五个步骤:

一、域名解析

1、根据url路径解析出里面的域名

    注:域名 = 主机名:结构名:网络名:最高层域名

2、根据域名解析出对应的IP地址

  ① 查询浏览器中的DNS缓存

  ② 若浏览器中没有查询到相应的DNS缓存,查询本地客户端的hosts文件中有无对应的ip地址

  ③ 若hosts文件中也没有,则查找本地DNS服务器(运营商提供的DNS服务器)

  ④ 若本地DNS缓存中也没有,则向根服务器查询,进行递归查找【递归查找时从顶级域名开始(如.com),一步步缩小范围,最终客户端取得ip地址】

  查询过程如下图所示:

  

 

二、TCP连接的建立

TCP连接是安全的、面向连接的可靠传输,建立连接时经过三次握手:

  ① 客户端 -----> 服务端:发送带有SYN标志的连接报文

  ② 服务端 -----> 客户端:返回带有SYN标志的ACK应答报文

  ③ 客户端 -----> 服务端:发送ACK应答报文

经过三次握手后,已经成功建立了TCP连接,可以发送数据了。

 

三、发送HTTP请求

连接建立完成后,开始发送HTTP请求,HTTP请求方法有很多种 ,常用的主要是两种GET和POST方法

请求报文格式:

  请求方法  URL  HTTP版本号

  请求头 Header

  【一个空行】

  请求体 Body

 

四、服务器进行操作并发送响应

服务器根据请求报文中url里的路径查找响应资源并对其数据进行处理:

响应报文:

  HTTP版本号  状态码  状态码解释

  响应头 Header【键值对数据】

  【一个空行】

  响应体 Body

响应状态码:

  200:OK

  301:永久移动,重定向

  302:临时转发,转发

  400:语法错误

  403:无权限

  404:找不到请求资源,url错误

  405:请求方法被禁止,请求方法类型不对

  500:服务器内部错误

五、浏览器解析渲染

 

posted @ 2021-08-14 17:38  一帆小白  阅读(424)  评论(0编辑  收藏  举报