我是靠谱客的博主 聪慧书包,最近开发中收集的这篇文章主要介绍前端代码怎么获取本机ip发给后端_当前端面试碰到后端面试官会发生什么?这似乎是一次有意思的面试...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

fe55eec5071d1c28eea17321b2013dbf.png

前言

金九银十,又是一年跑路季。9月中旬离职,在上周面试了有7家。其中一家是优居网,这次面试过程也是比较有趣的经历,因为面试官基本不问前端的问题,有被毒打到。后面才了解到面试官是全栈偏后端的。所以这篇分享对于前端面试可能用处不大,小伙伴就当是看个热闹拓展知识。

0d8d329a1c96e1f094d3b79c5af7196b.png

一面

浏览器输入url后会经历什么

这题也是老经典题目了,相信不少小伙伴也看过相关的文章。

大概过程是:

  1. DNS解析ip
  2. 根据ip对服务器发送连接请求
  3. 三次握手,连接服务器
  4. 数据传输
  5. 四次挥手,断开服务器(不一定会断开连接,因为HTTP1.1中会复用TCP连接)
  6. 浏览器解析数据
  7. 并行构建DOM树和CSSOM树
  8. 合成Render树
  9. 布局
  10. 绘制
  11. 渲染层合成(展示内容在页面上)。

面试过程中可能有点紧张,后面页面渲染那部分没说出来。

https重定向

原题的描述是,为什么在浏览器上输入 http://www.baidu.com 会跳转到 https 下对应的域名,这样做目的是什么?

其实很简单,跳转是服务端做了重定向的处理,目的是为了网站的安全性。

有几种方式可以让网页重定向

  1. a标签
  2. location.href
  3. window.open
  4. 设置html的meta标签

window.open有什么弊端

window.open 打开的网页可以通过 window.opener 属性获取到来源网站的 window 对象,或者通过 document.referrer 获取到来源网站的地址。所以在使用 window.open 时,可以把第三个参数设置为 noopener=yes,noreferrer=yes

UTF-8和GBK的区别

这个扯了一下,没答到点上。

正确答案:GBK包含全部中文字符;UTF-8则包含全世界所有国家需要用到的字符。UTF-8是国际编码,它的通用性比较好,GBK是国家编码,通用性比UTF-8差,不过UTF-8占用的数据库比GBK大。

一个请求由什么组成

请求行(请求方法、URL、HTTP协议版本)、请求头、请求体(post传输的数据)

浏览器缓存(强缓存、协商缓存)

大概说了强缓存使用的字段,使用缓存的过程。协商缓存的字段不太记得,模糊的说了下,比较重要的就是协商缓存的两种策略,一种是根据文件修改时间对比,一种根据文件内容的哈希值来对比。

用过哪些http头

content-type ,以及一些自定义头。工作中用到的普遍就这些。

说下http2,以及它的应用场景

http2中新增“多路复用”的特性,基于“二进制分帧”把字节流数据分割成带有编号的碎片传输,服务端接收到数据后,根据编号合成一个完整的数据。

应用场景没想出来。

http3了解吗

只了解到传输层是基于UDP协议。

https为什么比http安全,https加密过程

https比http安全是因为在传输数据时做了加密处理。

回答到浏览器生成随机数给服务端构造对称加密算法,然后是对称加密和非对称加密的配合使用,数据使用对称加密,而对称加密的密钥使用非对称加密。

在数据加密前,还有证书验证的阶段,忘记答上了。证书内的公钥是用来加密随机数发给服务端的。

对称加密在工作中有哪些应用

工作中没有应用过,但是知道AES对称加密。

抓包工具是否能抓到https的数据,如果能抓到,安全又怎么保证

能。因为是用户主动进行操作,抓包工具可以配置用户信任的证书,所以数据可以经过抓包工具被获取。

jwt是什么

jwt可以用于验证用户身份信息,和传统的token作用差不多。

传统的token是服务端将用户信息进行MD5处理发送给客户端,客户端在请求时带上token验证。因为MD5是不可逆的,服务端需要去数据库查询相关用户信息,再进行一次MD5,用该MD5和客户端发来的MD5进行对比。

而jwt是不需要服务端经过数据库查询的操作,jwt有对应的加密解密算法,服务端拿到jwt后通过密钥解密可以把其中的用户信息拿到。

oauth2.0验证过程

有听过,但是没了解,没答出来。

说下resfulApi

resfulApi是一种接口设计规范,使用get(获取)、post(新建)、put(更新)、delete(删除)等语义化的方法去描述请求。url里会带上版本号和资源名,资源以复数形式描述。

说下graphQL

graphQL是一种用于api查询的语言,能让客户端只获取所需要的数据。在开发中,后端返回的数据中会包含一些前端不需要的内容。使用graphQL可以把获取数据的主动权交给前端,通过数据模型去规定后端返回的数据,只取所需要的数据,减少接口的冗余数据。

说下B+树

懵,没答出来

二面

二面就简单问了下Vue生命周期,后面都是围绕项目去问。而且我发现面的好多家公司都会问性能优化。这里我也给点小建议,可以从这几个方面去回答:

  • 渲染:减少回流重绘、dom操作使用Fragment
  • 应用:防抖、节流
  • 资源:vue路由懒加载、小程序分包、雪碧图、图片懒加载、dns预解析、压缩、缓存
  • webpack:dllPligin、多进程打包

三面

三面是老板面,不聊技术,基本就聊一些经历,性格,对职业的规划,对公司的期望之类的。从交谈中得知,老板是程序员转行,曾经也是个全栈工程师,在阿里待过。然后才知道这家公司成立不够半年,应该是优居网旗下的公司吧。问了老板对公司的技术团队规划,目前是只有两个全栈,技术团队正在扩张,未来会保持在十多个人左右。

最后

虽然最后拿到了offer,但还是选择不去。主要是技术团队和money的问题吧,个人倾向稳定一些的公司。

0d8d329a1c96e1f094d3b79c5af7196b.png

最后

以上就是聪慧书包为你收集整理的前端代码怎么获取本机ip发给后端_当前端面试碰到后端面试官会发生什么?这似乎是一次有意思的面试...的全部内容,希望文章能够帮你解决前端代码怎么获取本机ip发给后端_当前端面试碰到后端面试官会发生什么?这似乎是一次有意思的面试...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部