知乎后端开发三面面经

基础部分

网络协议,比如 TCP IP HTTP HTTPS 这些协议之间的关系是什么,又有什么联系呢?


这道题考点和一道经典题(浏览器输入 URL 之后发生了什么)很像,其实就是考网络模型和网络协议的。回答的时候基本就是说,最上层是应用层, HTTP 协议和 HTTPS 协议都在这一层,如果要发送 HTTP 报文,会先生成 HTTP 报文,然后在应用层加上 TCP 头,在网络层加上 IP 头,在数据链路层加上帧头帧尾,把 MAC 帧发送到路由器,路由器获取到 MAC 帧之后,去掉帧头帧尾得到数据包,讲数据包根据路由协议路由到目标网络或主机。

路由器路由工作实在哪一层做的?


网络层

那传输层做什么事情呢?


这题考的是传输层的功能,无论是 OSI 参考模型,还是 TCP/IP 参考模型,每一层都有特定的功能。这里我帮大家总结一下 TCP/IP 参考模型每一层的功能吧
  • 应用层

包含高层协议来提供常见的因特网服务

  • 传输层

使源端和目的端的对等实体可以进行会话(进行进程间通信)

  • 网络层

使主机可以把分组发往任何网络,并是分组独立地传向目标

  • 网络接口层

定义如何使用实际网络传输 IP 包

TCP 如何实现可靠的通信呢


这也是个经典问题,秋招被问了无数次

+ 数据包校验
+ 对失序数据包重新排序
+ 丢弃重复数据
+ 接收方收到数据后,会发送一个确认
+ 发送方发出数据后,启动一个定时器,如果超时未收到接收方确认,则重新发送这个数据
+ 有流量控制和拥塞控制
+ 如果要发送的报文过大, TCP 会对其进行分段

HTTP 协议提供了怎样的功能,解决了什么问题


这个问题其实我也拿不准,大家可以评论区讨论一下。

我认为主要解决的是人和机器交互的问题,主要是主机上存储的信息,通过 HTTP 协议进行通信,再通过浏览器解析 HTML 格式的内容,让人方便阅读

REST 是什么东西


+ 每个 URI 代表一种资源
+ 客户端通过四个 HTTP 方法,对服务端资源进行操作

算法题


第 k 个数 [acwing 链接](https://www.acwing.com/problem/content/788/)


这是 y 总算法基础课的一道题!
#include <iostream>

using namespace std;

const int N = 100010;
int a[N];

int n, k;

int quick_select(int l, int r, int k){
    if(l >= r) return a[k];
    int x = a[l + r >> 1];
    int i = l - 1, j = r + 1;
    while(i < j){
        do i ++; while(a[i] < x);
        do j --; while(a[j] > x);
        if(i < j){
            swap(a[i], a[j]);
        }
    }
    if(k <= j) return quick_select(0, j, k);
    else return quick_select(j + 1, r, k);
}

int main(){
    
    scanf("%d %d", &n, &k);
    
    for(int i = 0; i < n; i ++){
        scanf("%d", &a[i]);
    }
    
    printf("%d\n", quick_select(0, n - 1, k - 1));
    
    return 0;
}



分析时间复杂度


最好情况 O(N)

最坏情况 O(N ^ 2) (存疑)

个人项目部分


主要对我在搜狗实习期间做过的一个项目进行深挖

反问部分


架构师主要负责什么?怎么成为架构师?(面试官是架构师)


架构师分为很多种,网络架构,存储文件架构,业务架构等。我主要是做业务架构,简单说就是把业务上虚的东西变成技术上可行的东西,根据业务做一些模型抽象,分层,架构选型。

想称为架构师最重要的一点是把学过的基础知识内化为技术能力,还有就是职业生涯前期找到擅长的感兴趣的技术领域,并且做出一定的深度。

最后 知乎内推:


#内推##实习##校招##社招##知乎#
全部评论
楼主开了多少啊?
点赞 回复 分享
发布于 2021-11-10 20:51

相关推荐

emmm别问我为啥上一条帖子隔了两个月我才开始投简历和拿offer,因为我懒😰简单流程如下:周一凌晨改好的简历,然后到处乱投简历;周二接到了三维家的一面通知,临时抱佛脚的背了一些八股;周三上午一面下午通知第二天hr面;周四上午hr面下午拿offer,遂收手支线:在BOSS上顺手投了几个大厂,投字节的时候不小心投城客户端了,结果过了一天HR突然把我简历要走了,还问我能不能整客户端,我直接一口答应(脏面评警告😢)结果在周三下午的时候给我打电话,说前端有空缺实习岗,问我有没有兴趣,然后就跟我约了周四下午一面😰我都没咋准备啊,咩都不会啊😭结果周四下午面完,晚上打电话通知过一面了,赶紧把二面约在下周一下午,留点缓冲时间。逆大天了,我一半的问题都不会,他居然给我过了?运气未免有点好了😥现在正在恶补计网、网安、性能优化的东西(这三大板块我是几乎一点不会,一面几乎一点答不出来,加上我又没怎么背八股,这块被干烂了😵)心得体会与经验:1.&nbsp;我giao怎么这么快就结束了,我还以为要找好久😨2.&nbsp;大厂的面试问题真的和中厂小厂很大不同,比如在三维家我能自己吹水到vue的数据劫持、Proxy代理响应式之类的他们就觉得很不错了,但是在字节你但凡敢提到一下就会追问你细节了,一追问马脚就全漏出来了3.&nbsp;有信心真的很重要,我感觉我能拿中厂offer最重要的就是吹水吹出自信来了,以至于三维家面试反问面试官有哪里还需要改进的时候,他就说很不错了解的很多😦4.&nbsp;理解很重要,我从头到尾真没背过很多八股,不过有一些知识确实是敲过代码验证过,所以面试的时候能吹水吹得出来😇想了解面经啥的可以直接评论区问我,但我可能也说不全,因为我没有记录,而且今天摆了一天感觉记忆快清空了😵下面是故事时间:我暑假刚开始的时候才开始准备八股,印象很深那个时候连什么原型、事件循环、闭包这些名词都没听过,资料也不知道怎么找,就一直零零散散的准备,感觉也只有js稍微背了一下八股,其他很多时候都是靠完全理解和手写熟悉一些机制的,但这样做效率很低,反正准备了一个多星期半个月就开摆了😭结果一摆就摆到了开学,笔记是乱七八糟的,八股是忘光光的,简历是一直没改的,实习也是一直没投过的。直到上周日晚上偶然和师兄聊天,他突然问我“你怎么还不找实习”,那天晚上才幡然醒悟,是时候做点事情了😡然后就按照上面描述的来走了。其实我感觉我从头到尾都没背特别多八股,也没怎么找刷题资料啥的,早期就是翻尚硅谷或者黑马的入门视频从头学起,中期用面试鸭看了一点点题,主要是在学js机制和敲js代码,后期才发现了w3c的面经网站,然后在那里看着学(那个时候已经懒得敲了,因为有些问题与代码感觉不像是给找实习的看的,忒细了点😂)接下来继续准备字节二面吧,虽然几乎没啥可能可以通过,但是万一有奇迹呢?😍😍😍也祝大家能够早日拿到心仪的offer
内向的柠檬精在研究求...:我已经预见10天后你会发,节孝子启动了
投递三维家等公司10个岗位
点赞 评论 收藏
分享
牛牛不会牛泪:脉脉太多这种了,纯水军
点赞 评论 收藏
分享
评论
1
22
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务