地址栏访问url的时候发生了什么?

地址栏访问url的时候发生了什么?

浏地址栏访问url的大致流程:
  1. 解析url
  2. 查询DNS服务器获取ip地址
  3. 建立TCP链接
  4. 处理请求
解析URL
  • 对输入的字串进行解析,确认是合法的url则将地址转换为ASCII码继续处理
  • 判断访问的地址在浏览器里是否有缓存,缓存是否过期,缓存过期则向DNS服务器重新请求数据
查询DNS服务器获取ip地址

DNS协议负责将域名转为IP地址
浏览器会按照 浏览器 >>系统hosts文件 >> 系统DNS缓存 >>路由器 >>系统设置首选DNS服务器 >>DNS根服务器的顺序查找,找到目的ip直接返回

建立TCP链接
  • 发送http请求
    http 请求报文构成


    http 请求报文构成

    http 请求报文实例
  • 建立TCP链接
    TCP的三次握手与四次挥手


    image.png
  1. 客户端主动发送syn同步信号,SYN=1表示这是一个链接请求报文,不能携带数据(此时ACK=0,客户端进入同步已发送状态)
  2. 服务端监听套接字收到并发送自己的同步信号(SYN=1), 服务器进入同步收到状态(ACK=1),客户端链接建立
  3. 服务器接收到服务器的同步请求后,发送自己的同步收到信息(ACK=1), 服务器收到后服务端链接建立
    PS: seq表示希望下次对端返回的报文的地址,ack表示接受到的报文的地址
    四次挥手类似,在链接释放报文发送后客户端停止发送数据(会接收数据),服务器端发送确认报文并关闭接收(保留发送资源),进入关闭等待状态,客户端接收到服务端发送释放报文后,发出确认报文,四次挥手完成
  • 处理请求
    服务器对请求进行校验,客户端ip请求合法,返回数据,浏览器进行渲染
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容