http相关面试题,拿去吧

死侍

 

 httpscss

https是在http与tcp之间增添了一个加密/身份验证层(SSL)html

 

http与https区别node

  1. http是明文传输信息,而https则是具备安全性的SSL加密传输,比http更安全
  2. http和https链接方式不一样,端口也不同,http是80,https是443

 

http无状态协议是什么?怎么解决nginx

无状态协议是对于事务处理没有记忆能力算法

使用Cookie来解决无状态json

 

经常使用的HTTP方法跨域

  1. GET、POST
  2. PUT: 传输文件
  3. DELETE:删除文件
  4. OPTIONS:查询相应URI支持的HTTP方法

 

完整HTTP请求所经历的7个步骤浏览器

  1. 创建TCP链接
  2. 浏览器向服务器发送请求行
  3. 浏览器发送请求头
  4. 服务器应答
  5. 服务器发送应答头
  6. 服务器向浏览器发送数据
  7. 服务器关闭TCP链接

 

http的keep-alive缓存

TCP链接在发送后将仍然保持打开状态,浏览器能够继续经过相同的链接发送请求,节省了创建链接所需时间和网络带宽安全

 

Ajax请求过程

  1. 建立XMLHttpRequest对象
  2. 设置回调函数
  3. 与服务器创建连接,open()
  4. 向服务器发送数据,send()
  5. 在回调函数中判断响应状态并处理数据

 

常见HTTP状态码

200:请求成功

301:永久性重定向

302:临时重定向

403:请求的对应资源禁止被访问

404:服务器没法找到对应资源

500:服务器内部错误

503:服务器正忙

 

网页从输入网址到加载完成的过程

  1. 浏览器输入url
  2. 域名解析(DNS解析),解析获取相应IP地址
  3. 浏览器向服务器发起并创建tcp链接
  4. 浏览器向服务器发送http请求
  5. 服务器接收请求,将数据发送浏览器
  6. 浏览器获取文件,解析html源码
  7. 生成Dom树,解析css样式,js交互,完成渲染

 

浏览器同源策略

同源策略是指"协议+域名+端口"三者相同

分为两种,DOM 同源策略,XMLHttpRequest 同源策略

 

跨域方式

  1. 经过jsonp跨域
  2. document.domain + iframe跨域
  3. location.hash + iframe
  4. window.name + iframe跨域
  5. postMessage跨域
  6. nginx代理跨域
  7. nodejs中间件代理跨域
  8. WebSocket协议跨域

 

网站性能优化

  1. 减小HTTP请求
  2. 利用浏览器缓存
  3. 减小DOM操做
  4. 首屏加载和按需加载
  5. 减小浏览器重排和重绘
  6. js和css文件合并压缩
  7. CSS资源放顶部,JS资源放底部
  8. 图片使用png格式

 

虚拟DOM

用js实现DOM树,用diff算法对每一层比较,找出最小变动,而后改变实际DOM,达到性能优化的方案

 

浏览器重排和重绘

重排是DOM元素的几何变化,DOM树结构变化,渲染树须要从新计算
重绘是当页面中的元素样式的改变并不影响它在文档流中的位置,好比改变背景,颜色,字体等等,浏览器会根据元素的新属性从新绘制,使元素呈现新的外观

 

常见浏览器内核

IE浏览器:Trident内核

Chrome浏览器:早期Webkit内核,现为Blink内核

Firefox浏览器:Gecko内核

Safari浏览器:Webkit内核

360浏览器:Trident + Webkit双内核

QQ浏览器:Trident + Webkit双内核

 

常见兼容性问题

  1. 1.   不一样浏览器的默认margin、padding不一样

解决方案:css里增长通配符*{margin:0;padding:0}

  1. 2.   事件绑定不一样

IE浏览器: dom.attachEvent()

其余:dom.addEventListener()

  1. 3.   Ajax略有不一样

IE浏览器:ActiveXObject对象

其余:XMLHttpReuest对象

相关文章
相关标签/搜索