前端面试宝典3.1服务端编程

本文深入探讨了前端面试中的服务端编程,重点关注JSONP的优缺点、跨域的概念及其解决方案,包括JSONP、CORS、代理、postMessage、document.domain等,并简单介绍了DOM的理解和相关API。
摘要由CSDN通过智能技术生成

3.1服务端编程

1.JSONP优缺点?

优点:
1.JSONP可以跨越同源策略
2.它的兼容性较好
3.请求完毕后可以通过调用callback方式回传结果。
缺点:
1.只支持GET请求,不支持POST等其他类型的HTTP请求。
2.调用失败时不会返回各种HTTP状态码

扩展:json与jsonp区别?摘自

json是一种轻量级的数据交换格式,jsonp是一种跨域数据交互协议。
理解:
json是理想的数据交换格式,但没有办法跨域直接获取,于是将json包裹(padding)在一个合法的js语句中作为js文件传过去。这就是json和jsonp的区别,json是想要的东西,jsonp是为了达到这个目的而普遍采用的一种手段。

2.跨域是什么?

浏览器从一个域名的网页去请你去另一个域名的资源时,域名,端口,协议任一不同,都是跨域。

3.如何实现跨域?
(1)JSONP跨域

利用script标签没有跨域限制的漏洞,动态创建一个script标签,其src属性值指向第三方的API网址,并提供一个回调函数来接收数据。
缺点:只能get方式,容易受到XSS攻击。(跨站脚本攻击)

扩展—如何防范XSS攻击?

XSS指攻击者在返回的HTML中嵌入JavaScript脚本,解决方法有两种
第一种是:设置set-cookie:httponly-,可以禁止js脚本访问cookie
第二种是:set-cookie:secure-,只在请求为https的时候发送cookie

(2)CORS,跨域资源共享

当使用XMLHttpRequest发送请求时,如果浏览器发现违反了同源策略就会自动加上一个请求头origin;
后端在接受到请求后确定响应后会在Response Headers中加入一个属性Access-Control-Allow-Origin;
浏览器判断响应中的Access-Control-Allow-Origin值是否和当前的地址相同,匹配成功后才继续响应处理,否则报错。
缺点:忽略cookie,兼容性不好

(3)代理跨域请求

前端发送请求,经过代理,请求需要的服务器资源
缺点:需要额外的代理服务器

(4)html5 postMessage方法(window属性)

允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本、多窗口、跨域消息传递。
缺点:浏览器版本要求,部分浏览器需要配置放开跨域限制

(5)修改document.domain跨子域

相同主域名下的不同子域名资源,设置document.domain为相同的一级域名

(6)基于html5 websocket协议

websocket是html5一种新的协议,基于该协议可以做到浏览器与服务器全双工通信,允许跨域请求。
缺点:浏览器版本要求,且服务器需要支持websocket协议

(7)document.xxx+iframe

通过iframe是浏览器非同源标签,加载内容中转,传到当前页面的属性中
缺点:页面的属性值有大小限制

4.dom是什么?你的理解?

DOM即文档对象模型,是W3C制定的标准接口规范。DOM提供了对整个文档的访问模型,将文档作为一个树形结构,树的每一个结点表示了一个HTML标签或标签内的文本项。

扩展:虚拟DOM?

对真实DOM的抽象,以js对象作为基础的树,用对象的属性来描述节点,最终通过一系列操作使这棵树映射到真实环境上。
js中,虚拟DOM表现为一个object对象。

5.关于dom的api有什么?

1.创建节点的api
createElement 创建节点
createtextNode 创建文本节点
createDocumentFragment 创建临时节点
2.修改节点的api
appendChild 添加子元素
insertBefore 添加节点到参照节点前
removeChild 删除指定节点
replaceChild 替换节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值