2022腾讯云前端校招二面总结

一、介绍一下项目,说分别用了什么技术实现了什么功能

二、有没有实现过用户登录界面呢,具体需要用到什么技术?

https://www.jb51.net/article/127344.htm

三、说一下token是什么,有什么作用

    Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

    使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。  

token是什么_Jason_Fangh的博客-优快云博客_tokens

四、说下TCP和UDP的区别,以及他们的用途

    TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。但是慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间。(可靠)

    UDP比TCP快,没有TCP的握手、确认、窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传递数据时非常快。从而漏洞少则受到的攻击也少。但在数据传递时,如果网络质量不好,就会很容易丢包。所以不稳定,对传输质量要求不高时如语言和视频可用UDP(不可靠)

    TCP与UDP区别总结:

    1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

    2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付

    3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的 UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

    4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

    5、TCP首部开销20字节;UDP的首部开销小,只有8个字节

    6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

五、说一下浏览器页面渲染的过程

    假设客户端主机最开始没有 IP 地址以及其它信息,那么第一步就需要先使用 DHCP 来获取客户端主机的IP地址。

    获取到客户端主机的IP后,接下来第二步就是来获取域名对应的IP地址了也就是DNS解析过程,然而此时的网关的MAC地址还未知,因此先使用ARP解析获取网关的MAC地址.

    获取到网关的MAC地址后,就可以顺利进行DNS解析来获取域名对应的IP地址了

    有了 HTTP 服务器的 IP 地址之后,主机就能够生成 TCP 套接字,该套接字将用于向 Web 服务器发送 HTTP GET 报文。在生成 TCP 套接字之前,必须先与 HTTP 服务器进行三次握手来建立连接。生成一个具有目的端口 80 的 TCP SYN 报文段,并向 HTTP 服务器发送该报文段。

HTTP 服务器收到该报文段之后,生成 TCP SYN ACK 报文段,发回给主机同意进行连接。连接建立之后,浏览器生成 HTTP GET 报文,并交付给 HTTP 服务器。

HTTP 服务器从 TCP 套接字读取 HTTP GET 报文,进行处理后生成一个 HTTP 响应报文,将 Web 页面内容放入报文主体中,发回给主机。

浏览器收到 HTTP 响应报文后,抽取出 Web 页面内容,之后进行渲染,显示 Web 页面。

当服务器给浏览器发送JS,CSS这些文件时,会告诉浏览器这些文件什么时候过期(使用Cache-Control或者Expire),浏览器可以把文件缓存到本地,当第二次请求同样的文件时,如果不过期,直接从本地取就可以了。如果过期了,浏览器就可以询问服务器端,文件有没有修改过?(依据是上一次服务器发送的Last-Modified和ETag),如果没有修改过(304 Not Modified),还可以使用缓存。否则的话服务器就会被最新的文件发回到浏览器。

现在浏览器得到了三个重要的东西:

1.HTML ,浏览器把它变成DOM Tree

2. CSS,  浏览器把它变成CSS Rule Tree

3. JavaScript, 它可以修改DOM Tree

浏览器会通过DOM Tree和CSS Rule Tree生成所谓“Render Tree”,计算每个元素的位置/大小,进行布局,然后调用操作系统的API进行绘制,这是一个非常复杂的过程,略去不表。

六、说一下HTTP缓存机制

HTTP缓存机制 - ranyonsue - 博客园

七、 说一下csrf攻击以及防御方法

    CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:
    攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。 如下:其中Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。
    目前防御 CSRF 攻击主要有三种策略:验证 HTTP Referer 字段;在请求地址中添加 token 并验证;在 HTTP 头中自定义属性并验证。

常见网络攻击类型_花开也疯狂-优快云博客_网络攻击类型

八、算法题: 输入[ie,http,radio9,web,video],输出最长的单词 即输出video

这个当时没实现出来,没想到要用正则表达式,面试完写的 
<script>
    function longestStr(arr) {
      var reg = /\d/;
      var longStr = ''
      for (let i = 0; i < arr.length; i++) {
        // 通过正则test方法可找到含数字的单词
        if (reg.test(arr[i]) == true) {
          arr.splice(i, 1)
        } else if (arr[i].length > longStr.length) {
          longStr = arr[i]
        }
      }
      return longStr
    }

    var arr = ['ie', 'http', 'radio9', 'web', 'video']
    ary = longestStr(arr)
    console.log(ary)
  </script>

九、算法题:实现快速排序算法 

  var quickSort = function(arr) {
  if (arr.length <= 1) { return arr; }
  var pivotIndex = Math.floor(arr.length / 2);
  var pivot = arr.splice(pivotIndex, 1)[0];
  var left = [];
  var right = [];
  for (var i = 0; i < arr.length; i++){
    if (arr[i] < pivot) {
      left.push(arr[i]);
    } else {
      right.push(arr[i]);
    }
  }
  return quickSort(left).concat([pivot], quickSort(right));
};

arr = [3, 6, 2, 5, 7, 1, 9, 4, 8];
ary=quickSort(arr)
console.log(ary);

第一次参加校招的面试就到二面为止了。。总结经验,再接再厉吧。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值