从输入 URL 到页面展示到底发生了什么?

  1. 输入网址,解析URL,准备发送HTTP请求

  2. 检查浏览器是否有缓存,若有则直接返回,若没有则进行下一步网络请求

  3. DNS域名解析,网络请求前,进行DNS解析,获取IP地址,若请求协议是HTTPS,则需建立TLS连接,查询ip的顺序:本地浏览器缓存 -> 本地host文件 -> 路由器缓存 -> DNS服务器 -> 根DNS服器

4.建立连接,通过tcp三次握手建立连接

  1. 浏览器发送HTTP请求,构建请求头、请求行等信息,并把cookie等加入到请求头中,发送请求(若是HTTPS,则还需加解密过程)

  2. 服务器处理请求并返回HTTP资源

  3. 断开连接,通过tcp四次挥手断开连接

  4. 浏览器解析并渲染页面

  • 浏览器解析响应头。若响应头状态码为301、302,会重定向到新地址;若响应数据类型是字节流类型,一般会将请求提交给下载管理器;若是HTML类型,会进入下一部渲染流程。
  • 浏览器解析HTML文件,创建DOM树,解析CSS进行样式计算,然后将CSS和DOM合并,构建渲染树;最后布局和绘制渲染树,完成页面展示。
相关推荐
晚枫歌F2 小时前
TCP协议详解
网络·网络协议·tcp/ip
tang777892 小时前
Python爬虫代理,选短效IP还是长效IP?
爬虫·python·tcp/ip
秋4272 小时前
防火墙基本介绍与使用
linux·网络协议·安全·网络安全·架构·系统安全
sweet丶2 小时前
扩展了解DNS放大攻击:原理、影响与防御
网络协议·安全
_F_y3 小时前
网络层协议:IP
网络·tcp/ip·php
科技块儿4 小时前
我应该如何选择并使用IP数据库评估不同地区的定位精度(⊙_⊙?)
网络·网络协议·tcp/ip
万粉变现经纪人5 小时前
如何解决 pip install SSL 报错 ValueError: check_hostname requires server_hostname 问题
网络·python·网络协议·beautifulsoup·bug·ssl·pip
talenteddriver6 小时前
Java Web:http请求在springboot项目中的传递层级(自用笔记)
java·前端·spring boot·http
Bug.ink6 小时前
BUUCTF——WEB(4)
前端·网络安全·靶场·ctf·buuctf
松涛和鸣6 小时前
DAY42 SQLite3 : Dictionary Import and Data Query Implementation with C Language
linux·c语言·数据库·单片机·网络协议·sqlite