持续更新ing 软件测试面试常见问题总结

请求头名称 作用
Host 主机IP地址或域名
User-Agent 客户端相关信息,如操作系统,浏览器等信息
指定客户端接收信息类型,如image/jpg等
- 客户端接收的字符集
- 可接受的内容编码
- 接收的语言
客户端提供给服务器,进行权限认证的信息
携带的信息
当前文档的URL, 防止盗链
-Type 实体头内容类型
- 数据长度
Cache- 缓存机制
防止页面被缓存
3.为什么是三次握手而不是两次握手
1:由于 TCP 是一个双向通信协议,通信双方都有能力发送信息,并接收响应 。因此,通信双方都需要随机产生一个初始的序列号,并且把这个起始值告诉对方 。
2:同步序号
3:两次的话只有客户端的序号被确认了,服务器端的序号没有被确认 。
4:tcp是可靠的面向连接的传输方式,但是如何保证这种方式呢,那就是通过同步一个序列号来就行的,通过这个序列号可以实现重复数据刷掉,以及丢包重发的功能,保证了数据的完整性和数据传输的可靠性,以及数据包之间的有序性 。
5:但是这种功能的实现依赖于syn() ,可以理解成一个1个1位的数据包,专门用于同步序列号的 。
也就是说如果客户端要与服务端建立连接都要发送syn,然而根据tcp建立连接的方式:
客户端在发送一个连接请求的时候(syn)服务端会发送一个确认信号,这是还需要客户端继续发送一个确认信号,但是如果这个时候客户端不发送确认信号,服务端会在限制时间内继续发送确认信号,这样会大大的消耗服务器资源
三、操作系统类 1.进程有哪几种状态
(1) 运行态(Run): 进程占有处理机资源,正在运行 。显然,在单处理机系统中任一时刻只能有一个进程处于此种状态;
(2) 就绪态(Ready): 进程本身具备运行条件,但由于处理机的个数少于可运行进程的个数,暂未投入运行 。即相当于等待处理机资源;
(3) 等待态(Wait): 也称挂起态()、封锁态()、睡眠态(Sleep) 。进程本身不具备运行条件,即使分给它处理机也不能运行 。进程正等待某一个事件的发生,如等待某一资源被释放,等待与该进程相关的I/O传输的完成信号等 。
(4) 创建状态:进程正在被创建,操作系统为进程分配资源 。
(5) 结束状态:进程正在从系统中撤销,操作系统会回收进程拥有的资源 。
2.进程与线程的区别
(1)概念
进程:
一个在内存中运行的应用程序 。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在系统中,一个运行的xx.exe就是一个进程 。
线程:
进程中的一个执行任务(控制单元),负责当前进程中程序的执行 。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可共享数据 。
(2)区别
根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位
资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小 。
包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程 。
内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的
影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉 。所以多进程要比多线程健壮 。