浏览器地址输入url到打开网页的过程

当你在浏览器中输入一个URL并按下回车键时,浏览器会经历以下几个过程来获取和显示网页内容:

一、输入URL后的旅程

  1. DNS解析:首先,浏览器会通过DNS查询将URL中的域名(例如www.example.com)转换为对应的IP地址。DNS解析是自动完成的,通常由本地计算机的DNS缓存或ISP的DNS服务器完成。
C:\Users\Administrator>nslookup www.baidu.com
服务器:  bunian
Address:  192.168.31.1

非权威应答:
名称:    www.a.shifen.com
Addresses:  2408:871a:2100:2:0:ff:b09f:237
          2408:871a:2100:3:0:ff:b025:348d
          110.242.68.4
          110.242.68.3
Aliases:  www.baidu.com

C:\Users\Administrator>ping 192.168.31.1

正在 Ping 192.168.31.1 具有 32 字节的数据:
来自 192.168.31.1 的回复: 字节=32 时间=3ms TTL=64

192.168.31.1 的 Ping 统计信息:
    数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 3ms,最长 = 3ms,平均 = 3ms
  1. 建立TCP连接:然后,浏览器会通过TCP协议与目标服务器建立连接。浏览器会向目标服务器发送一个SYN(同步)包,然后等待服务器的SYN-ACK(同步确认)包,最后发送一个ACK(确认)包,完成三次握手,建立TCP连接。
  2. 发送HTTP请求:一旦建立了TCP连接,浏览器会通过该连接向服务器发送HTTP请求。HTTP请求通常包括GET、POST、PUT、DELETE等不同类型,用于请求获取、提交表单、更新或删除资源等操作。
  3. 服务器处理请求:服务器收到HTTP请求后,会根据请求类型和URL路径等信息处理请求,并返回相应的HTTP响应。例如,如果请求的是一个HTML页面,服务器会查找并返回该页面;如果请求的是一个图片,服务器会返回图片数据。
  4. 接收HTTP响应:浏览器收到HTTP响应后,会解析和显示返回的内容。如果是HTML页面,浏览器会解析HTML标记并渲染页面;如果是图片,浏览器会显示图片;如果是视频或音频,浏览器会播放媒体内容。

二、简单的案例模拟

要验证这个过程,你可以编写一个简单的后端页面来模拟上述过程。

下面是一个使用Python Flask框架编写的简单示例:

from flask import Flask, render_template, request

app = Flask(__name__)


@app.route('/')
def index():
    # 模拟用户输入URL并点击回车键的过程
    url = request.args.get('url')
    return f"User input URL: {url}"


if __name__ == '__main__':
    app.run()

将以上代码保存为一个名为app.py的文件,然后在终端中运行以下命令来启动服务器:

python3 app.py

在浏览器中输入以下URL访问该页面:

http://127.0.0.1:5000/?url=https://www.example.com

你会看到浏览器显示了用户输入的URL(在这个例子中是[https://www.example.com)。

这个简单的后端页面只是模拟了用户输入URL并点击回车键的过程,而没有真正地与目标服务器建立连接或发送HTTP请求。

图片[1]-浏览器地址输入url到打开网页的过程-不念博客

浏览器输入:

图片[2]-浏览器地址输入url到打开网页的过程-不念博客
© 版权声明
THE END