美文网首页我爱编程让前端飞Web 前端开发
游览器输入网址按下回车,到看到网页的过程

游览器输入网址按下回车,到看到网页的过程

作者: EdmundChen | 来源:发表于2018-05-16 21:58 被阅读53次

这是一个十分复杂的过程,我们假设输入的是域名而非ip,略过设备硬件、系统级别以及数据最底层的处理过程。

主要过程

  • 1.DNS解析
  • 2.ip获取后跟服务端发起TCP/IP的3次握手
  • 3.建立TCP/IP连接后发起http请求
  • 4.服务器响应http请求
  • 5.客户端获得html文件
  • 6.浏览器解析html代码,并请求html代码中的资源(如jscssimg等)并进行渲染呈现给用户. 发起异步请求以及其他请求(websocket)

过程分析,以Chrome为例:访问www.taobao.com

一、DNS解析

  • 1.Chrome会先搜索自身的DNS缓,看自身的缓存中是否有www.taobao.com 对应的条目,如果有且没有过期则解析到此结束。

查看Chrome自身缓存 chrome://net-internals/#dns,缓存时间比较短,且只能容纳条数有限.

  • 2.如果浏览器自身的缓存里面没有找到对应的条目,那么Chrome会搜索操作系统自身的DNS缓存, 如果找到且没有过期则停止搜索解析到此结束.
    1. 如果在系统的DNS缓存没有找到,那么尝试读取hosts文件,如果有则解析成功。
    1. 如果在hosts文件中也没有找到对应的条目,浏览器就会发起一个DNS的系统调用,就会向本地配置的首选DNS服务器发起域名解析请求

a. 通过的是UDP协议向DNS的53端口发起请求,这个请求是递归的请求,运营商的DNS服务器首先查找自身的缓存,找到对应的条目,且没有过期,则解析成功。
b. 如果没有找到对应的条目,则有运营商的DNS代我们的浏览器发起迭代DNS解析请求,再向其他服务器发送请求。如果都没有在就解析失败。

二、发起TCP的3次握手

拿到IP地址之后,Chrome会以一个随机端口(1024 < 端口 < 65535)向服务器的web程序(常用的有apache, nginx, tomcat等)80端口发起TCP的连接请求。这个请求经过网络传输处理,最终到达web程序,建立了TCP/IP的连接。

image.png

目前在Internet中所有的传输都是通过TCP/IP进行的,HTTP协议作为TCP/IP模型中应用层的协议,TCP是一个端到端的可靠的面向连接的协议,所以HTTP基于传输层TCP协议不用担心数据的传输的各种问题。

三、建立TCP连接后发起http请求

http请求内容,这里略

四、服务器端响应http请求,浏览器得到html代码

服务端具体响应过程, 这里略

五、 浏览器get html文件,并解析html代码,并请求html代码中的资源

浏览器拿到index.html文件后,就开始解析其中的html代码,遇到js/css/image等静态资源时,就向服务器端去请求下载(或缓存) 游览器会使用多线程下载,每个浏览器的线程数不一样,这个时候就用上keep-alive特性了,建立一次HTTP连接,可以请求多个资源,下载资源的顺序就是按照代码里的顺序,但是由于每个资源大小不一样,而浏览器又多线程请求请求资源,所以显示的顺序并不一定是代码里面的顺序。

六、浏览器对页面进行渲染呈现给用户

游览器具体渲染过程。 这里略

相关文章

  • 游览器输入网址按下回车,到看到网页的过程

    这是一个十分复杂的过程,我们假设输入的是域名而非ip,略过设备硬件、系统级别以及数据最底层的处理过程。 主要过程 ...

  • web前端面试题汇总

    1.讲讲输入完网址按下回车,到看到网页这个过程中发生了什么?------域名解析------发起TCP的3次握手-...

  • 理论知识总结

    标签(空格分隔): 面试准备 [TOC] 1、讲讲输入完网址按下回车,到看到网页这个过程中发生了什么 域名解析 发...

  • 第136天:Web前端面试题总结(理论)

    Web前端面试题总结 HTML+CSS理论知识 1、讲讲输入完网址按下回车,到看到网页这个过程中发生了什么 a.域...

  • 前端面试题整理

    一、理论基础知识部分 1.1、讲讲输入完网址按下回车,到看到网页这个过程中发生了什么 a. 域名解析 b. 发起T...

  • 前端面试题

    1、输完网址按下回车,到看到网页这个过程中发生了什么? a.域名解析。 b.发起TCP的3次握手。 c.建立TCP...

  • DSN域名解析

    序言 我们通过浏览器输入一个网址,按回车键,之后就能看到网页了。这个过程中发生了什么事情,这篇文章会简单介绍这个过...

  • 从 URL 输入到页面展现发生了什么

    从在浏览中输入URL到按下回车再到看到网页,中间的过程很复杂,但是对于程序员来说,有必要弄清楚大致的过程,而且在前...

  • 前端性能优化分析和对策

    1.分析 从用户输入 url ,按下回车到网页呈现过程中跟前端相关的过程: 缓存 DNS查询 建立TCP连接(无...

  • url回车后过程

    当我们在输入网址后按回车键浏览器会加载出我们想要的页面,但很多小伙伴们都不是很清楚从输入URL按回车键到页面呈现到...

网友评论

    本文标题:游览器输入网址按下回车,到看到网页的过程

    本文链接:https://www.haomeiwen.com/subject/xzupdftx.html