Ajax解决跨域方案一:(jsonp)
jsonp:jsonp是json的一种使用模式,可以让网页从别的域名那里获取数据。
Ajax解决跨域方案二:(cors)
当Ajax发送请求时,服务器会返回一个响应头,相当于服务器指定了可以访问该接口的白名单。
Ajax解决跨域方案三:(服务器转发)
服务器端向第三方服务器发送请求,得到数据并返回给客户端。
扩展:和跨域有关的cors几个响应头和请求头。(九个)
请求头三个:origin access-control-request-headers access-control-request-method
响应头六个:access-control-allow-headers access-control-allow-methods
access-control-allow-origin access-control-allow-credentials
access-control-expose-headers access-control-max-age
按回车后从一个url地址到最终页面渲染完成,中间发生了什么?
1.DNS解析:将域名地址解析为IP地址
--浏览器DNS解析--系统DNS解析--路由器DNS解析--网络运营商DNS解析
--递归搜索 :在域名下查找DNS解析
2.TCP连接:TCP三次握手
- 第一次握手,由浏览器发起,告诉服务器我要发送请求了
- 第二次握手,由服务器发起,告诉浏览器我准备接受了,你赶紧发送吧
- 第三次握手,由浏览器发起,告诉服务器,我马上就发送了,你准备接受吧
3.发送请求:
-请求报文:HTTP协议的通信内容
4.接收响应:
-相应报文
5.渲染页面
-遇见HTML标记,浏览器调用HTML解析器解析成Token并构建DOM树
-遇见style标记,浏览器调用css解析器处理css标记并构建cssom树
-遇见js标记,浏览器调用js解析器处理script代码
-将dom树和cssom树合并成一个渲染树
-根据渲染树来计算布局,计算每个结点的几何信息(布局)
-将各个节点颜色绘制到屏幕上(渲染)
(以上五个不受不一定按照顺序执行,可能会执行多次布局和渲染,往往实际页面中,这些步骤都会执行多次的)
6.TCP四次挥手(断开连接)
第一次挥手:由浏览器发起,发送给服务器,我东西发送完了(请求报文),你准备关闭吧
第二次挥手:由服务器发起,发送给浏览器,我东西接受完了(请求报文),我准备关闭了,你也准备关闭吧。
第三次挥手:由浏览器发起,发送给服务器,我东西发送完了(响应报文),你准备关闭吧。
第四次挥手:由服务器发起,发送给浏览器,我东西接收完了(响应报文),我准备关闭了,你也准备关闭吧。