北京合众思壮科技股份有限公司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
相关考题:
- 单选题Your Routed 1483 network is grouping ATM PVCsinto a large subnet and has static host routes configured.For which purpose does the staticroute to the customer router provide?()AIt allows for management of the DSL routers.BIt is required for forwarding to the customer networks.CIt allows the endusers to forward traffic to the Internet.DIt is required for the DSL router to ARP the provider router.
- 标准作业是准时生产的基础()
- 散射线对照相底片的影响主要是降低射线照相的()和()。
- 丰田公司在现场创造灵活的工作场所方面,采取的措施是()
- 标准作业适用于什么样的作业?
- “从泵到泵”输送方式中,各站的输量()。A、不相同B、单独可调C、自行调节D、相同
- 强度一定的两种同位素源,若其放射性比活度值不同,则对放射性比活度值较高的源来说,其半衰期比放射性比活度值低的源长。
- 液化气槽车紧急阀如果油压(),而紧急切断阀不动作,说明油路阻塞。A、减低B、增加C、正常D、为零
- 单选题What is the maximum number of external DHCP servers per virtual router in a Bridged 1483 network?()A3B5C10D20
- 测定石油及其产品的闪点有何意义?