北京合众思壮科技股份有限公司12月招聘面试题200道20201218
此题为判断题(对,错)。
名称:新概念发展有限公司
面试题目:1.你对JAVA了解吗?
述您的问题,如:请教一道华为公司的C语言面试题目的答案和
Django1.11版本下,以下哪些方法是Django中间件提供的钩子方法()
- A、process_view
- B、process_exception
- C、process_template_response
- D、process_middleware_exception
正确答案:A,B,C
北京合众思壮科技股份有限公司12月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:Django 本身提供了 runserver,为什么不能用来部署?可用的回答 : runserver 方法是调试 Django 时经常用到的运行方式, 它使用 Django 自带的 WSGI Server 运行,主要在测试和开发中使用,并且 runserver 开启的方式也是单进程 。 uWSGI 是一个 Web 服务器,它实现了 WSGI 协议、uwsgi、http 等协议。 注意 uwsgi 是一种通信协议,而 uWSGI 是实现 uwsgi 协议和 WSGI 协议的 Web 服务器。 uWSGI 具有超快的性能、低内存占用和多 app 管理等优点, 并且搭配着 Nginx就是一个生产环境了,能够将用户访问请求与应用 app 隔离开,实现真正的部署 。 相比来讲,支持的并发量更高,方便管理多进程,发挥多核的优势,提升性能。 问题 Q2:什么是粘包? socket 中造成粘包的原因是什么? 哪些情况会发生粘包现象?可用的回答 : 粘包:在接收数据时,一次性多接收了其它请求发送来的数据(即多包接收)。如: 对方第一次发送hello,第二次发送world,在接收时,应该收两次, 一次是hello,一次是world,但事实上是一次收到helloworld,一次收到空,这种现象叫粘包。 原因: 粘包问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的。 什么情况会发生: 1、发送端需要等缓冲区满才发送出去,造成粘包 发送数据时间间隔很短,数据很小,会合到一起,产生粘包 2、接收方不及时接收缓冲区的包,造成多个包接收 客户端发送了一段数据,服务端只收了一小部分, 服务端下次再收的时候还是从缓冲区拿上次遗留的数据,产生粘包 解决方案: 一个思路是发送之前,先打个招呼,告诉对方自己要发送的字节长度, 这样对方可以根据长度判断什么时候终止接受 注意: 只有TCP有粘包现象,UDP永远不会粘包! 问题 Q3:说一说redis-scrapy中redis的作用?可用的回答 : 它是将scrapy框架中Scheduler替换为redis数据库,实现队列管理共享。 优点: 可以充分利用多台机器的带宽; 可以充分利用多台机器的IP地址。 问题 Q4:分布式爬虫主要解决什么问题?可用的回答 : 面对海量待抓取网页,只有采用分布式架构,才有可能在较短时间内完成一轮抓取工作。它的开发效率是比较快而且简单的。 问题 Q5:Python中的lambda是什么?可用的回答 :它是一个单独的表达式匿名函数,通常用作内联函数。问题 Q6:简述 三次握手、四次挥手的流程?可用的回答 : 三次握手: 初始状态:客户端A和服务器B均处于CLOSED状态,然后服务器B创建socket,调用监听接口使得服务器处于LISTEN状态,等待客户端连接。(后续内容用A,B简称代替) 1、A首先向B发起连接,这时TCP头部中的SYN标识位值为1,然后选定一个初始序号seq=x(一般是随机的), 消息发送后,A进入SYN_SENT状态,SYN=1的报文段不能携带数据,但要消耗一个序号。 2、B收到A的连接请求后,同意建立连接,向A发送确认数据,这时TCP头部中的SYN和ACK标识位值均为1,确认序号为ack=x+1, 然后选定自己的初始序号seq=y(一般是随机的),确认消息发送后, B进 入SYN_RCVD状态,与连接消息一样,这条消息也不能携带数据,同时消耗一个序号。 3、A收到B的确认消息后,需要给B回复确认数据,这时TCP头部中的ACK标识位值为1, 确认序号是ack=y+1,自己的序号在连接请求的序号上加1,也就是seq=x+1, 此时A进入ESTABLISHED状态,当B收到A的确认回复后,B也进入ESTABLISHED状态, 至此TCP成功建立连接,A和B之间就可以通过这个连接互相发送数据了。 四次挥手: 初始状态:客户端A和服务器B之间已经建立了TCP连接,并且数据发送完成,打算断开连接, 此时客户端A和服务器B是等价的,双方都可以发送断开请求,下面以客户端A主动发起断开请求为例。(后续内 容用A,B简称代替) 1、A首先向B发送断开连接消息,这时TCP头部中的FIN标识位值为1,序号是seq=m,m为A前面正常发送数据最后一个字节序号加1得到的, 消息发送后A进入FNI_WAIT_1状态,FIN=1的报文段不能携带数据,但要消耗一个序号。 2、B收到A的断开连接请求需要发出确认消息,这时TCP头部中的ACK标识位值为1,确认号为 ack=m+1, 而自己的序号为seq=n,n为B前面正常发送数据最后一个字节序号加1得到的, 然后B进入 CLOSE_WAIT状态,此时就关闭了A到B的连接, A无法再给B发数据,但是B仍然可以给A发数据,同时B端通知上方应用层,处理完成后被动关闭连接。 然后A收到B的确认信息后,就进入了 FIN_WAIT_2状态。 3、B端应用层处理完数据后,通知关闭连接, B向A发送关闭连接的消息,这时TCP头部中的FIN和ACK标识位值均为1, 确认号ack=m+1,自己的序号为seq=k,消息发送后B进入LACK_ACK状态。 4、A收到B的断开连接的消息后,需要发送确认消息, 这是这时TCP头部中的ACK标识位值为1,确认号ack=k+1,序号为m+1(因为A向B发送断开连接的消息时消耗了一个消息号), 然后A进入TIME_WAIT 状态,若等待时间经过2MSL后,没有收到B的重传请求, 则表明B收到了自己的确认,A进入CLOSED状态, B收到A的确认消息后则直接进入CLOSED状态。至此TCP成功断开连接。 问题 Q7:遇到过得反爬虫策略以及解决方法?可用的回答 :
关于Django的单元测试,以下说法正确的是?()
- A、无法对模板进行单元测试
- B、django.test.Client提供了一个特殊HTTP客户端以便模拟请求
- C、manage.pytest命令会为测试创建一个特殊的数据库
- D、对于需要权限认证的view,因为需要登录因此不能编写单元测试
正确答案:B,C
以下哪些是方法是Django中ORM的Manager的方法?()
- A、filter
- B、annotate
- C、all
- D、prefetch_related
正确答案:A,B,C,D
下面关于Django信号描述错误的是?()
- A、Django内置了一个信号分发器。
- B、信号可以帮助解耦程序模块。
- C、信号允许某些senders通知一组receivers已经发生的行为。
- D、Django信号是异步的
正确答案:D
编制面试题目分为开放性题目和()。
正确答案:封闭式题目
按照面试题目的考察内容,面试题目可划分为以下几种()
- A、背景性和知识性问题
- B、智能性问题
- C、意愿性问题
- D、情境性问题
- E、行为性问题
正确答案:A,B,C,D,E
相关考题:
- 哪些情况下可使用武器?
- 根据金融资产转移会计准则,“将收取金融资产现金流量的权利转移给另一方”,是金融资产转移的情形之一,比如()。A、出售应收账款B、核销应收账款C、收回应收账款D、应收账款质押
- 下列各项负债中属于金融负债的有()。A、应付票据B、应付账款C、预收账款D、应付债券
- 判断题前锋线比较法既适用于工作实际进度与计划进度之间的局部比较,又可用来分析预测工程项目整体进度状况。A对B错
- 不是徒手防卫技术的戒备姿势是()A、低姿戒备B、搭手戒备C、侧身戒备D、提手戒备
- 胚胎的器官发育在孕几周已完成:()A、8周B、12周C、16周D、20周
- 孕20周后正常胎儿脑室率小于:()A、O.5B、0.6C、0.7D、0.8
- 企业年金基金不包括()。A、企业缴费B、社会缴纳C、职工个人缴费D、企业年金基金投资
- 单选题某施工单位通过投标承揽了一大型建设项目设计和施工任务,由于施工图纸未按时提交而造成实际施工进度拖后,该施工单位根据监理工程师指令采取赶工措施后,仍未能按合同工期完成所承包的任务,则该施工单位()A不仅应承担赶工费,还应向业主支付误期损失赔偿费B应承担赶工费,但不需要向业主支付误期损失赔偿费C不需要承担赶工费,但应向业主支付误期损失赔偿费D既不需要承担赶工费,也不需要向业主支付误期损失赔偿费
- 重点罪犯会见仅限于亲属、监护人,每次会见不超过()人。A、1人B、2人C、3人