当你在浏览器中输入一个URL并按下回车键时,浏览器会经历以下几个过程来获取和显示网页内容:
一、输入URL后的旅程
- 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
- 建立TCP连接:然后,浏览器会通过TCP协议与目标服务器建立连接。浏览器会向目标服务器发送一个SYN(同步)包,然后等待服务器的SYN-ACK(同步确认)包,最后发送一个ACK(确认)包,完成三次握手,建立TCP连接。
- 发送HTTP请求:一旦建立了TCP连接,浏览器会通过该连接向服务器发送HTTP请求。HTTP请求通常包括GET、POST、PUT、DELETE等不同类型,用于请求获取、提交表单、更新或删除资源等操作。
- 服务器处理请求:服务器收到HTTP请求后,会根据请求类型和URL路径等信息处理请求,并返回相应的HTTP响应。例如,如果请求的是一个HTML页面,服务器会查找并返回该页面;如果请求的是一个图片,服务器会返回图片数据。
- 接收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请求。
浏览器输入:
© 版权声明
本站文章由不念博客原创,未经允许严禁转载!
THE END