第一次电话面试在毫无征兆下到来,感觉自己做的不是很好吧,有点虚,所以,特意写一篇博客来记录其中遇到的问题
1当在浏览器中输入url时,后面一系列发生了什么行为
答:导航的第一步是通过访问的域名找出其IP地址,DNS查找过程
1 浏览器的缓存 系统缓存,ISP DNS缓存
2浏览器解析url获取协议 主机 端口 path
3浏览器组装成一个http (get) 请求报文
4 浏览器获取主机ip地址 过程如下
浏览器缓存 本机缓存 hosts缓存 路由器缓存等
dns地柜查找
5打开一个socket 与目标IP地址 端口简历TCP链接 3次握手
6 TCP连接建立后发送http请求
7服务器接受请求并解析 将请求转发到服务程序
9服务器检查http请求头是否包含缓存等验证信息
服务器将响应报文通过TCP链接发回浏览器
10浏览器接受http 响应 通过4次握手 关闭TCP链接
11 浏览器解析成DOM树 大致就是如此
具体可看如下http://www.qdfuns.com/notes/16842/88908c6bd93eaa881bb0fdc087ef67e0.html
二 js的继承 js中的每个类型实际上都是一种对象 js可以通过原型链来进行继承
function Person(name,sex){
this.name = name;
this.sex = sex;
}
Person.prototype = {
getName:function () {
return this.name;
},
getSex:function () {
return this.sex;
}
}
具体可看这里
http://www.cnblogs.com/sanshi/archive/2009/07/08/1519036.html
三 跨域的几种处理方法
1 在主域相同的时候
document.domain + iframe
2.动态创建script
3.location.hash + iframe
4.window.name + iframe
5.postMessage
6.CORS背后的思想 就是使用自定义的HTTP头部让浏览器与服务器进行通信 从而决定请求或是响应是否应该成功 还是应该失败
7.JSONP包含两部分:回调函数和数据
websocket 浏览器API
8 http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html 闭包的作用 实际上就是函数里面嵌套函数