浏览器从发起请求到呈现页面的整个过程
1. 域名解析:先在本地寻找DNS(域名解析)缓存,找不到就去ISP(互联网服务提供商)请求网址对应的IP地址。
2.发起TCP三次握手:通过 DNS 解析,我们找到了真正处理这个网址的服务器的 IP 地址,通过TCP 协议三次握手建立连接。
3.发送http请求:这个时候我们的客户端已经和这个网址的服务器建立了连接。
4.服务器端响应http请求,浏览器得到html代码
5.浏览器渲染页面
(1.解析HTML标签,生成DOM树,同时请求html代码中的资源。
(2.解析到<link>
或者<style>
标签时,开始解析CSS
,生成CSS规则树
(3.
当遇到<script>
标签后,浏览器会立即开始解析脚本,并停止解析DOM
(4.当DOM Tree
与CSSOM
生成后,将两者结合,生成渲染树render tree,然后将内容显示再屏幕上。
6.断开TCP请求
网站性能优化的方法
1、减少http请求,合理设置 HTTP缓存。将浏览器一次访问需要的javascript和CSS合并成一个文件,设置恰当的缓存。
减少请求的方法,一次请求多个文件,同时把多个文件压缩成一个文件,使用css精灵图和图片懒加载
2.使用异步请求Callback。可以在(DOM.onload )DOM加载完成后再请求一些资源。
3.减少cookie的传输,cookie包含在每次请求和响应中,太大的cookie会严重影响数据传输,。
性能优化:
1. 减少http请求数
使用精灵图
合并压缩css样式表和js脚本
压缩传输的所有文本资源
2. 图片优化,使用icon图片
3. 异步加载,DOM加载完成后再请求一些资源-
什么是跨域,跨域是怎么产生的,如何解决跨域?
跨域是:当一个请求的url,协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。
跨域是怎么产生的:浏览器的同源策略限制。
同源指网站具有相同的域,即 协议(protocol)、主机(host)、端口号(port) 相同。
跨域解决方案:
1.JSONP跨域请求数据
2.CORS跨域
对于简单请求,浏览器会直接发送CORS(
跨源资源共享)
请求,具体说来就是在header
中加入origin
请求头字段。同样,在响应头中,返回服务器设置的相关CORS
头部字段,Access-Control-Allow-Origin
字段为允许跨域请求的源。 // 响应头部Access-Control-Allow-Origin: <origin> | *