网络面试——浏览器输入url到显示主页的过程

浏览器输入URL到显示主页的过程通常可以分为以下步骤:

  1. **URL解析**:
  • 当用户在浏览器的地址栏中输入URL时,浏览器会首先对该URL进行解析。

  • 解析URL包括识别协议(例如HTTP、HTTPS)、主机名(例如www.example.com)、路径(例如/index.html)等。

  1. **DNS解析**:
  • 浏览器将解析出的主机名发送到DNS(域名系统)服务器,以获取该主机名对应的IP地址。

  • 如果该主机名已经被缓存,则直接从缓存中获取IP地址;否则,将向DNS服务器发送DNS查询请求。

  1. **建立TCP连接**:
  • 浏览器使用HTTP或HTTPS协议与获取的IP地址上的服务器建立TCP连接。

  • 对于HTTPS协议,还会进行SSL握手过程,确保通信安全性。

  1. **发送HTTP请求**:
  • 一旦TCP连接建立,浏览器会向服务器发送HTTP请求,请求页面或资源。

  • 请求头部可能包括信息如请求的方法(GET、POST等)、所需的页面或资源、浏览器的相关信息等。

  1. **服务器处理请求**:
  • 服务器接收到浏览器发送的HTTP请求后,会根据请求的内容和服务器的配置进行相应的处理。

  • 处理过程可能包括读取文件、执行脚本、访问数据库等操作。

  1. **服务器返回响应**:
  • 服务器处理完请求后,会生成相应的HTTP响应,包括响应头和响应主体。

  • 响应头包括状态码(如200表示成功,404表示未找到页面等)、服务器信息、内容类型等。

  • 响应主体则包含请求的页面内容或资源的数据。

  1. **浏览器接收响应**:
  • 浏览器接收到服务器返回的HTTP响应后,开始解析响应内容。

  • 如果是HTML页面,浏览器会解析HTML文档,并同时获取并解析页面中引用的外部资源,如CSS样式表、JavaScript脚本、图像等。

  1. **渲染页面**:
  • 浏览器根据HTML文档和相关资源,将页面内容呈现在用户界面上。

  • 页面的呈现包括解析HTML结构、应用CSS样式、执行JavaScript代码等步骤。

  1. **显示页面**:
  • 最终,浏览器将渲染好的页面显示给用户。

  • 用户可以与页面进行交互,如点击链接、填写表单等。

这些步骤构成了浏览器从接收到用户输入URL到显示网页内容的完整过程。

浏览器中输入: " www.woaijava.com " 之后都发生了什么? 请详细阐述
由域名 → IP 地址 寻找 IP 地址的过程依次经过了浏览器缓存、系统缓存、 hosts 文件、路由器缓
存、 递归搜索根域名服务器。
建立 TCP/IP 连接(三次握手具体过程)
由浏览器发送一个 HTTP 请求
经过路由器的转发,通过服务器的防火墙,该 HTTP 请求到达了服务器
服务器处理该 HTTP 请求,返回一个 HTML 文件
浏览器解析该 HTML 文件,并且显示在浏览器端
这里需要注意:
HTTP 协议是一种基于 TCP/IP 的应用层协议,进行 HTTP 数据请求必须先建立 TCP/IP 连接
可以这样理解: HTTP 是轿车,提供了封装或者显示数据的具体形式; Socket 是发动机,提供了
网络通信的能力。
两个计算机之间的交流无非是两个端口之间的数据通信 , 具体的数据会以什么样的形式展现是以
不同的应用层协议来定义的。
主要包括以下几个基本步骤:

浏览器的地址栏输入URL并按下回车

浏览器查找当前URL是否存在缓存,并比较缓存是否过期

DNS解析URL对应的IP

根据IP建立TCP连接(三次握手)

发送HTTP请求

服务器处理请求

返回HTTP响应

浏览器接受HTTP响应

关闭TCP连接(四次挥手)

浏览器解析HTML

浏览器布局渲染

浏览器地址栏输入 url 并回车:

  1. 浏览器解析 URL

1.1 查看缓存

1.2 DNS 解析

  1. 根据 IP 地址三次握手建立 TCP 连接

  2. 发送 HTTP 请求

  3. 服务器处理请求

  4. 服务器返回 HTTP 响应

  5. 浏览器接受响应

  6. 四次挥手关闭 TCP 连接

  7. 浏览器解析 HTML

  8. 浏览器布局渲染

相关推荐
时差95328 分钟前
【面试题】Hive 查询:如何查找用户连续三天登录的记录
大数据·数据库·hive·sql·面试·database
长弓三石1 小时前
鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例
前端·网络·华为·harmonyos·鸿蒙
xianwu5431 小时前
反向代理模块
linux·开发语言·网络·git
follycat1 小时前
[极客大挑战 2019]HTTP 1
网络·网络协议·http·网络安全
xiaoxiongip6662 小时前
HTTP 和 HTTPS
网络·爬虫·网络协议·tcp/ip·http·https·ip
JaneJiazhao2 小时前
HTTPSOK:智能SSL证书管理的新选择
网络·网络协议·ssl
CXDNW2 小时前
【网络面试篇】HTTP(2)(笔记)——http、https、http1.1、http2.0
网络·笔记·http·面试·https·http2.0
嚣张农民2 小时前
JavaScript中Promise分别有哪些函数?
前端·javascript·面试
无所谓จุ๊บ3 小时前
树莓派开发相关知识十 -小试服务器
服务器·网络·树莓派
道法自然04023 小时前
Ethernet 系列(8)-- 基础学习::ARP
网络·学习·智能路由器