安恒信息C安全开发实习面试凉经
2023年03月06日 19:40面试
大概讲一下你简历上写的项目(webserver)
你怎么处理你这个服务器的惊群效应?
面试官:方法比较多,比如说加锁可以,每个Epoll事件里面都是有对应的FD的,先抢到抢到这个FD的就先释放锁,然后再去Accpet
。没有抢到的就从事件里面移除。
可以研究一下Linux内核里有一个标记位叫WQ_FLAG_EXCLUSIVE
可以解决惊群现象。
我一个客户端在连你的web服务器如果那个客户端掉线了。服务器会怎么样?
我客户端我请求了你服务器的页面对吧,那怎么知道服务器已经响应结束了呢?就是基于HTTP来说。客户端发一个 get请求请求你的页面,客户端怎么知道响应报文结束了呢?
面试官:这个响应包结束根据的是,
第一个是看响应头有没有Content-Length
,有的话就表示响应报文消息主体的大小。
第二个是HTTP协议还支持使用Transfer-Encoding
字段来传输变长的响应报文,例如使用分块传输编码(chunked)方式。这种情况下,服务器会将响应报文分成若干个大小不等的块进行传输,每个块都以该块的大小开始,以0长度的块结束。客户端在接收到一个长度为0的块时,就知道整个响应报文接收完毕了。
稍微讲一下TCP四次挥手状态机
你的这个webserver服务器代码量是多少
想想你在写这个web服务器的时候有遇到内存泄漏或者是死锁、程序崩溃或者其他问题吗?
客户端跟服务器本来是都访问的通的。然后突然间访问不通了,有哪些可能性,可以从七层模型来分析一下。
面试官:程序死循环僵死了(应用层),半连接队列满了(传输层)、交换机设置了VLAN包过不去(链路层)、网线松了(物理层),防火墙设置了客户端IP(网络层)
说一下大端和小端是什么意思
进程的内存分布
多进程和多线程的主要区别是什么?
进程和线程的可靠性哪个更好
反问
实习生主要做什么?
面试官:实习生主要是对产品的了解。我们是做web应用,应用防火墙,我们涉及到转发跟代理还有防护, 然后可能会让你学习功能文档。首先是对代码,对那个这个功能了解,等你成长到一定程度的话,会让你去写些功能。然后还有就是对我们产品的维护。
根据刚刚面试能给我一点建议吗?
我感觉你是有点紧张的,我建议你后续多多的去那个沟通还有去锻炼一下,因为嗯面试紧张会导致发挥不了你的实力的。
我看你是计算机专业的,应该研究算法或者代码这些。但是我关注的并不仅仅是写代码的能力,我我关注的可能包括你对网络知识的一些了解。我们这个web防火墙比较关注的是TCP协议的掌握,包括三握四挥,还有他的连接状态,都是必须要掌握的。然后其实还有一些,因为今天会时间比较赶,比如说对比那个滑动窗口啊,拥塞机制啊那些我就没怎么问了。
你可以看一下Nginx的代码,你这个web服务器可以参考一下里面的实现。
你们加班的话一般加到几点啊?
我们是平时应该是我们应该说是早上八点半到下午五点半吧,一般来说七八点就下班了,有可能六七点。实习生的话,我们不会太强求。然后你是研究生的话,实习工资应该是4500到5000左右
#软件开发2023笔面经##实习#