前端面试—浏览器渲染

69 阅读2分钟

1、从输入网址到实现的过程?

1、重定向 2、查看缓存 3、DNS解析,获取IP地址 4、TCP连接建立 5、发送报文请求 6、响应报文数据 7、浏览器解析数据 8、渲染

2、BOM对象模型

screen
window
navigator
location
document
history

3、Location对象属性

hash 设置或返回从#开始的URL
host 设置或返回主机名和当前URL的端口号
hostname 设置或返回当前URL的主机名
href 设置或返回完整的URL
pathname 设置或返回当前URL的路径部分
port 设置或返回当前URL的端口号
search 设置或返回从?开始的URL(查询部分)
跨域相关问题

4、跨域问题解决方案

JSONP
CORS
Nginx代理
document.domain
window.name
postMessage+iframe

5、浏览器存储

cookie与session cookie保存在客户端(浏览器);session保存在服务端(redis) Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间 例子:

当客户端第一次请求登录服务器的时候,服务器随机下发一个字符串sessionId给浏览器,以cookie的形式保存在客户端。当下次登录的时候会带上这个cookie,从而识别你是谁。

cookie的优点:

1.极高的扩展性和可用性 2.通过良好的编程,控制保存在cookie中的session对象的大小。 3.通过加密和安全传输技术(SSL),减少cookie被破解的可能性。 4.只在cookie中存放不敏感数据,即使被盗也不会有重大损失。 5.控制cookie的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie。

cookie的缺点:

1.cookie数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉。 2.安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。 3.有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。