个人软件测试面试题整理
-
请说明http和websocket的区别:
http链接分为短链接,长链接。【短链接是每次请求都要三次握手才能发送自己的信息。即每一个request对应一个response。长链接是在一定的期限内保持链接;客户端与服务器通信,必须要有客户端发起然后服务器返回结果。】客户端是主动的,服务器是被动的。
WebSocket可以全双工通信:客服端和浏览器可以同时发送信息。
建立了WenSocket之后服务器不必在浏览器发送request请求之后才能发送信息到浏览器。这时的服务器已有主动权想什么时候发就可以发送信息到服务器,而且信息当中不必在带有head的部分信息了,这种方式,不仅能降低服务器的压力。而且信息当中也减少了部分多余的信息。
websocket的持久连接只需建立一次Request/Response消息对,之后都是TCP连接,避免了需要多次建立Request/Response消息对而产生的冗余头部信息。
-
TCP与UDP的区别
1.TCP是面向连接的,发送数据前必须先建立连接(TCP的三次握手);UDP是无连接的,即发送数据前不需要建立连接。 2.TCP连接只能是点对点的(一对一);UDP支持一对一、一对多、多对一和多对多的交互通信。 3.TCP提供可靠交付的服务,通过TCP连接传送的数据无差错、不丢失、不重复、按序到达;UDP使用尽最大努力交付,即不保证可靠交付(没有确认机制,重传机制),因此主机不需要维持复杂的连接状态表。 4.TCP面向字节流;UDP面向报文。 5.TCP有拥塞控制;UDP没有拥塞控制。
-
什么是FTP的主动模式和被动模式?连接过程是怎样的?
(FTP是一种应用层协议,使用该协议的服务器叫做FTP服务端。它使用两个端口:数据端口:20;命令端口:21)
主动模式的FTP是指服务器主动连接客户端的数据端口。
工作过程:
FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录;
登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口;
FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,发送数据。
被动模式的FTP是指服务器被动地等待客户端连接自己的数据端口。
工作过程:
FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录;
登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器;
服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端;
客户端再连接到服务器开放的端口进行数据传输
-
时间片轮转算法的原理
根据先来先服务的原则,将需要执行的所有进程按照到达时间的大小排成一个升序的序列,每次都给一个进程同样大小的时间片,在这个时间片内如果进程执行结束了,那么把进程从进程队列中删去,如果进程没有结束,那么把该进程停止然后改为等待状态,放到进程队列的尾部,直到所有的进程都已执行完毕。
-
进程有几种状态
就绪状态:当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,这种状态称为就绪状态;
执行状态:进程已获得CPU,其程序正在执行;
阻塞状态:正在执行的进程由于发生某事件而暂时无法继续执行时,便放弃CPU而处于暂停状态,亦即进程的执行受到阻塞,把这种暂停状态称为阻塞状态,有时也称为等待状态或封锁状态。比如进程当中调用wait()函数,会使得进程进入到阻塞状态。
挂起状态:在不少系统中进程只有上述三种状态,但在另一些系统中,又增加了一些新状态,最重要的是挂起状态。引入挂起状态的原因有:
(1) 终端用户的请求。当终端用户在自己的程序运行期间发现有可疑问题时,希望暂时使自己的程序静止下来。
(2) 父进程请求。有时父进程希望挂起自己的某个子进程,以便考查和修改该子进程,或者协调各子进程间的活动。
(3) 负荷调节的需要。当实时系统中的工作负荷较重,已可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统能正常运行。
(4) 操作系统的需要。操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。
创建状态:为一个新进程创建PCB(进程控制块,它是系统为了管理进程设置的一个专门的数据结构,主要表示进程的状态),把该进程转入到就绪状态并插入到就绪队列之中。
终止状态:等待操作系统进行善后处理,然后将其PCB清零,并将PCB空间返还系统。
-
tcp三次握手
TCP三次握手的过程?为什么要三次握手?
TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程。TCP运输连接就有三个阶段:连接建立、数据传送和连接释放。
连接建立的过程需要解决以下三个问题:
①要使每一方能够确知对方的存在。
②要允许双方协商一些参数(如最大窗口值、服务质量等)。
③能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。
TCP连接的建立采用客户服务器方式。主动发起连接的建立的引用进程叫做客户,而被动等待连接建立的应用进程叫做服务器。
TCP的连接建立
上面给出的连接建立的过程叫做三次握手。
为什么需要三次握手?
①从信息对等角度看,两端分别要确认自己与对方的发送、接受能力均正常。(第二次握手后,B还不能确定自己的发送和A的接受能力)
②A的超时连接请求可能会在双方释放连接后到达B,B会误以为是A发送了新的连接请求,从而创建连接,造成服务器资源被浪费。
-
并发性和并行性的区别
并发性是指两个或多个事件在同一时间间隔发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。
并行性是指两个或多个事件在同一时刻发生。