面闭 — 浏览器
一个页面从输入 url 到页面加载完成,这个过程中发生了什么?
4个步骤
(1) 当发送一个 url 请求时,不管这个 url 是 web 页面的 url 还是 web 页面上每个资源的 url,浏览器都会开启一个线程来处理这个请求,同时远程 NDS 服务器上启动一个 NDS 查询。这能使浏览器获得请求对应的 IP 地址。
(2) 浏览器与远程 Web 服务器通过 TCP 三次握手协商来建立一个 TCP/IP 连接。该握手包括一个同步报文,一个同步应答报文和一个应答报文,这三个报文在浏览器和服务器之间传递,该握手首先由客户端尝试建立起通信,而后服务器应答接受客户端的请求,最后由客户端发出该请求已经被接受的报文
(3) 一旦 TCP/IP 链接建立,浏览器会通过链接向远程发送 HTTP 的 GET 请求。远程服务器找到资源并使用 HTTP 响应返回该资源,值为 200 的 HTTP 响应状态表示一个正确的响应
(4) 此时,web 服务器提供资源服务,客户端开始下载资源。
浏览器同源策略
同源策略是客户端脚本(尤其是 JavaScript)的重要安全度量标准。它最早出自 Netscape Navigator 2.0,其目的是防止某个文档或脚本从多个不同源装载。所谓同源指得是 协议,域名,端口相同,同源策略是一种安全协议,指一端脚本只能读取来自同一源的窗口和文档的属性。
如何解决跨域问题
理解跨域的概念:协议、端口、域名都相同才同域,否则都是跨域
出于安全考虑,浏览器不允许 ajax 跨域获取数据,但是可以跨域获取文件内容,所以基于这个一点,可以动态创建 script 标签,使用标签的 src 属性访问 js 文件的形式获取 js 脚本,并且这个 js 脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面定义回调函数,在回调函数中处理服务器返回的数据。这就是 JSONP
相关资料
install_url
to use ShareThis. Please set it in _config.yml
.