前端面试每日3+2(第19天)

12/20/2019 每日3+2

当你发现自己的才华撑不起你的野心时,就请安静下来学习吧!

鲁迅说过:答案仅供参考...

# 1、http常见的状态码?

解析:

# 2、http请求常见的请求?什么是RestfulApi?什么简单请求和复杂请求?

解析:

  • 简单请求:请求头未改动的get和post
  • 复杂请求:非get和post 和 请求头改动的get或者post。复杂请求前会先发送options作为预检请求,询问对方是否可以链接,对方返回200ok再发送真正的请求,为了避免重复预检请求,服务端可以设置短时间不需要预检。

# 3、浏览器的渲染机制?

解析:

html渲染机制

# 4、Http的特点?缺点?

解析:

特点:

  • 无状态,可以使用cookie管理状态(登录后给你cookie,然后后面进行校验)
  • 为了防止每次请求都会造成无所谓的tcp链接建立和断开,所以采用保持链接的方式 keep-alive
  • 以前发送请求后需要等待接受相应后才能发送下一个,现在管线化方式,js、css可以并发请求,针对同一个ip地址,chrome可以同时6个,ie2个,所以可以采用不同的cdn进行资源分发,优化请求。

缺点:

  • 通信采用明文
  • 不验证通信方的身份
  • 无法验证内容完整性,内容可能被篡改

通过https建立安全通信线路。超文本传输安全协议。加密

# 5、为什么会跨域?解决方案?

解析:

什么是?

广义上说,跨域是指一个域下的文档脚本试图请求另一个域下的资源。
我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一种请求场景,浏览器从一个域名的网页去请求另一个域名的资源,协议、域名、端口任何一个不同,都是跨域。
跨域会带来许多安全性的问题,比如,cookie一般用于状态控制,常用于存储登录的信息,如果允许跨域访问,那么别的网站只需要一个脚本就可以获取你的cookie,从而冒充你的身份去登录网站,造成重大的安全问题,因此浏览器均推行同源策略。

解决方案:

  • jsonp
  • document.domain + iframe跨域
  • location.hash + iframe
  • window.name + iframe
  • postMessage
  • 跨域资源共享 (CORS)
  • nginx代理跨域
  • nodejs中间件代理跨域
  • WebSocket协议跨域
Last Updated: 1/14/2020, 7:56:38 AM
    asphyxia
    逆时针向