问题:CDN(内容分发网络)
解析:1.尽可能地避开互联网有可能影响数据传输速度和稳定性的瓶颈和环节。使内容传输得更快更稳定。
2.关键技术:内容存储和分发技术中
3.基本原理:广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对的地区或者网络中。当用户访问网络时利用全局负载技术 将用户的访问指向距离最近的缓存服务器,由缓存服务器直接响应用户的请求(全局负载技术)
问题:TCP的三次握手和四次挥手分别是什么
解析:三次握手
第一次握手:客户端发送一个SYN码给服务器,要求建立数据连接;
第二次握手: 服务器SYN和自己处理一个SYN(标志);叫SYN+ACK(确认包);发送给客户端,可以建立连接
第三次握手: 客户端再次发送ACK向服务器,服务器验证ACK没有问题,则建立起连接;
四次挥手:
第一次挥手: 客户端发送FIN(结束)报文,通知服务器数据已经传输完毕;
第二次挥手: 服务器接收到之后,通知客户端我收到了SYN,发送ACK(确认)给客户端,数据还没有传输完成
第三次挥手: 服务器已经传输完毕,再次发送FIN通知客户端,数据已经传输完毕
第四次挥手: 客户端再次发送ACK,进入TIME_WAIT状态;服务器和客户端关闭连接;
问题:什么是跨域
解析:因为浏览器出于安全考虑,有同源策略。也就是说,如果协议、域名或者端口有一个不同就是跨域,Ajax 请求会失败。防止CSRF攻击。
1.JSONP JSONP 的原理很简单,就是利用
<script>
function jsonp(data) {
console.log(data)
}
</script>
JSONP 使用简单且兼容性不错,但是只限于 get 请求。
2. CORS CORS需要浏览器和后端同时支持。IE 8 和 9需要通过XDomainRequest 来实现。
3. document.domain该方式只能用于二级域名相同的情况下,比如 a.test.com 和 b.test.com 适用于该方式。
只需要给页面添加 document.domain = 'test.com' 表示二级域名都相同就可以实现跨域
4. webpack配置proxyTable设置开发环境跨域
5. nginx代理跨域
6. iframe跨域
7. postMessage 这种方式通常用于获取嵌入页面中的第三方页面数据。一个页面发送消息,另一个页面判断来源并接收消息
以上就是酷仔今天整理提供的Web前端开发面试题,希望为Web前端同学提供了有用的面试素材,以后酷仔每日均会提供Python及Web相关的习题。