相信很多前端程序员在面试的时候都遇到过这个问题,第一次遇到这个问题的时候我是懵的,毫无准备的我乱说了一通,自然面试也凉了,最近对这一块学习了一遍,在此做个记录~

整体流程:

请你描述下从浏览器上输入一个url到呈现出页面的整个过程。_web服务器

  1. 如果URL包含域名,浏览器先连接到DNS(域名服务器),找到域名对应的IP地址;
  2. web浏览器连接到对应web服务器,发出http请求,要想要的内容;(TCP三次握手)
  3. web服务器检查请求资源是否存在,存在则返回,不存在则返回404;
  4. web浏览器收到资源并关闭连接;(TCP四次挥手)
  5. 浏览器解析整个页面,并检查所需的其他资源,比如图片;
  6. 继续发出http请求,请求对应资源;
  7. 请求完所有资源,页面就展示完全了。 

重点内容

DNS:Domain Name Service 域名服务,将域名解析为ip,这一过程会涉及到CDN,后续再详细学习CDN。

TCP/IP协议整体流程:

请你描述下从浏览器上输入一个url到呈现出页面的整个过程。_web服务器_02

应用层:特定于应用程序的协议,如WWW、电子邮件、FTP等。 

TCP传输控制层:Transmission Control Protocol 传输控制层协议,TCP是一种面向连接,可靠的字节流传输服务。TCP使用端口号将数据包定向到计算机上的特定应用程序。

IP网络层:Internet Protocol 网路层协议,IP是一种不可靠的,无连接的协议。IP将数据包通过IP地址传输到指定计算机。

硬件层:将二进制数据转换成光电信号 。