从输入URL到页面展示发生了什么
概述
- 第一步:浏览器中输入URL
- 第二步:域名解析
- 第三步:服务器处理
- 第四步:网站处理
- 第五步:绘制网页
URL
url是一个互联网统一资源定位符,将从因特网获取信息的五个基本元素包括在一个简单的地址中:
- 传送协议。
- 服务器。(通常为域名,有时为IP地址)
- 端口号。(以数字方式表示,若为HTTP的默认值“:80”可省略)
- 路径。(以“/”字符区别路径中的每一个目录名称)
- 查询。(GET模式的窗体参数,以“?”字符为起点,每个参数以“&”隔开,再以“=”分开参数名称与数据,通常以UTF8的URL编码,避开字符冲突的问题)
片段。以“#”字符为起点[2
域名解析
域名代替了IP地址(互联网上的设备都具有一个IP地址,分公网与局域网IP),来简化记忆和更方便的访问到服务器。
域名解析的流程:
- 浏览器缓存 – 浏览器会缓存DNS(Domain Name System)记录一段时间
- 系统缓存 - 从 Hosts 文件查找是否有该域名和对应 IP。
- 路由器缓存 – 一般路由器也会缓存域名信息。
- ISP(Internet Service Provider) DNS 缓存 – 比如到电信的 DNS 上查找缓存。
- 如果都没有找到,则向根域名服务器查找域名对应 IP,根域名服务器把请求转发到下一级,直到找到 IP
服务器处理
web服务器接收用户的Request 交给网站代码,或者接受请求反向代理到其他 web服务器
网站处理流程
浏览器处理
HTML字符串被浏览器接受后被一句句读取解析
解析到link 标签后重新发送请求获取css
解析到 script标签后发送请求获取 js,并执行代码
解析到img 标签后发送请求获取图片资源
浏览器根据 HTML 和 CSS 计算得到渲染树,绘制到屏幕上
js 会被执行