史上最全软件测试面试题集(含答案),进大厂涨薪必备,赶紧收藏

1.常见的HTTP请求方式有哪些?

GET:发送一个请求来获取服务器上的某一资源,多用于查询数据(如列表查询);

POST:将数据添加到服务器中的现有文件或资源(如提交表单或者上传文件),POST 请求可能会导致新的资源的建立或已有资源的修改;

HEAD:响应与GET请求相同,但没有响应正文;

PUT:替换服务器中的现有文件或资源,多用于向指定资源位置上传最新内容(如修改评价或笔记);

DELETE:从服务器中删除数据(如取消收藏或删除评价);

PATCH:是对 PUT 方法的补充,用于对资源进行局部更新;

OPTIONS:用于描述目标资源的通信选项;

CONNECT:HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器;

TRACE:回显服务器收到的请求,主要用于测试或诊断;

2.GET请求与POST请求的区别?

1.提交数据的形式

GET方法一般是指获取服务器上的数据,通过地址栏传输,请求参数(query string查询字符串)直接跟着URL后,以?分割URL和传输数据,参数之间以&相连(?name=coco&pwd=123)的形式,

直接可以放到浏览器地址栏里,如登录就是采用GET方法(name=coco&password=123&verify=%E4%BD%A0%E5 %A5%BD)。

如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,

得出如:%E4 %BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

POST方法是指客户端给服务器上提交表单数据,通过报文传输,会把数据放到请求数据字段中以&分隔各个字段,请求行不包含数据参数,地址栏也不会额外附带参数

所以POST是通过表单提交的,请求参数放在body中,如网页上的新用户的注册、调查问卷和答题就是采用POST方法。

2.提交数据的大小/长度

GET是直接在浏览器地址栏输入,直接影响到了URL的长度,但HTTP协议规范中其实是没有对URL限制长度的,限制URL长度的是客户端或服务器的支持的不同所影响:比如IE对URL长度的限制是2083字节(2K+35)。

对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。由于浏览器有限制,一般整个URL的长度可以很长,但是不能超过2049KB的大小限制,而POST没有大小限制。

POST方式HTTP协议规范中也没有限定,起限制作用的是服务器的处理程序的处理能力。所以大小的限制还是得受各个web服务器配置的不同而影响。

3.提交数据的安全性

由于GET的参数是在浏览器地址栏URL直接拼接,用户名和密码将明文出现在URL上,暴露在互联网中,安全性差,不能用来传递敏感信息。

POST请求参数放在Body里,是通过表单数据提交,POST比GET方式的安全性要高;

4.编码方式

GET的参数只能支持ASCII;

POST没有限制,也允许二进制数据;

5.请求方式

GET是获取指定的资源 ;

POST是向指定的资源提交要被处理的数据 ;

6.请求体

GET没有请求体;

POST有请求体;

7.效率方面

GET产生一个TCP数据包;

POST产生两个TCP数据包,POST需要两步,时间上消耗要多一点,GET比POST更有效;

8.请求过程

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据)

POST方式的请求,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok;

3.HTTP请求特点?

1.基于请求/响应,支持客户端/服务器模式

客户端发送请求,服务器端响应数据。客户端向服务器请求服务时,只需要传送请求的方法和路径即可。

常用的请求方法有GET(查)、POST(增),除此之外还有PUT(改)、DELETE(删)等,每种方法规定的客户端与服务器联系的方式不同,日常工作中见到的最多的是GET和POST两种。

2.基于TCP/IP协议之上的应用层协议,简单灵活

HTTP简单,服务器的程序规模小,通信速度快;HTTP使用TCP作为它的支撑运输协议,HTTP客户机发起一个与服务器的TCP连接,

一旦连接建立,浏览器(客户机)和服务器进程就可以通过套接字接口访问TCP,HTTP运行传输任意类型的数据对象。

3.无状态

协议对于事务处理没有记忆能力,客户端第一次与服务器建立连接发送请求时需要进行一系列的安全认证匹配等,因此增加页面等待时间,

当客户端向服务器端发送请求,服务器端响应完毕后,两者断开连接,也不保存连接状态(一刀两断,恩断义绝,从此路人),下一次客户端向同样的服务器发送请求时,由于他们之前已经遗忘了彼此,所以需要重新建立连接。

4.无连接 :

限制每次连接,使其只处理一个请求。服务器处理完客户端的请求并收到客户端的应答后,即断开连接,这种方式可以节省传输时间。

4.Cookie和Session的区别?

1.存储位置不同

Cookie是将用户数据通过加密的方式保存在客户端,大多数情况Cookie存储在浏览器;Session是用于控制客户端和服务端的连接,Session存储在服务器;

2.存储容量不同

单个Cookie保存的数据不得超过4kb,一个站点最多20个Cookie,Session一般情况下没有上限,不过建议不要存放太多东西,否则影响性能;

3.存取方式不同

Cookie只能用ASCII字符串,通过编码方式获取Unicode字符或者二进制数据,不好存储复杂的信息,而Session能存储任何类型的数据;

4.隐私策略/安全性不同

Cookie放在客户端,可以进行Cookie欺骗,所以不安全,Session放在服务端,更加安全;

5.有效期不同

Cookie可以设置属性达到长期有效,Session依赖于JSESSIONID的Cookie,Cookie JSESSIONID的过期时间默认为-1,

只需要关闭窗口Session就会失效,就算不依赖Cookie,用UrL重写也不能完成,如果Session超时时间过长,容易导致内存溢出;

6.服务器压力不同

Cookie保存在本地,不存在服务端压力,Session保存在服务端,每个用户产生一个Session,当访问增多,会比较占用服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用Cookie;

7.浏览器支持不同

如果浏览器禁用Cookie,那么Cookie直接失效,Session比较好点,可以用URL重写;

8.Cookie和Session应用的场景

Cookie一般用于记住用户的登录状态,如记录用户的习惯,购物车;而Session用于登录验证。

5.HTTP和HTTPS的区别?

HTTP协议传输的数据是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,SSL(SecureSocketsLayer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。

简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

HTTPS和HTTP的区别主要如下:

  • HTTPS协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  • HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的ssl加密传输协议。

  • HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  • HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

6.你所知道的HTTP状态码?

1xx :指示信息/参考信息(Info)——表示服务器收到请求,需要请求者继续执行操作;

2xx :成功(Successful)——表示请求已被成功接收、理解、接受;

3xx :重定向(Redirection)——要完成请求必须进行更进一步的操作;

4xx:客户端错误(Client Error)——表示请求可能有语法错误或请求无法实现,妨碍了服务器的处理;

5xx :服务器端错误(Server Error)——表示服务器在处理请求的过程中发生了内部错误,未能实现合法的请求;

常见状态码

200:成功(OK )——服务器已成功处理了请求;

301:永久移动(Moved Permanently)——请求永久重定向,请求的页面已永久移动到新位置;

302:临时移动(Found )——请求临时重定向, 服务器目前从不同位置的网页响应请求,资源只是临时被移动,但请求者应继续使用原有URL来进行以后的请求;

304 :未修改(Not Modified)——文件未修改,可以直接使用缓存的文件;

400 :错误请求(Bad Request )——由于客户端请求有语法错误,不能被服务器所理解;

401 :未授权(Unauthorized)——请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用;

403:禁止(Forbidden)——服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因;

404:未找到(Not Found )——请求的资源不存在,例如,输入了错误的URL;

500 :服务器内部错误( Internal Server Error )——服务器发生不可预期的错误,导致无法完成客户端的请求;

503 : 服务不可用(Service Unavailable )——服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常;

7.你所知道的常见接口类型有哪些?

  • HTTP接口:基于超文本传输协议(HyperText Transfer Protocol HTTP)开发的接口,是应用最广泛的网络协议之一,但并不排除没有使用其他协议。基于浏览器/服务器(Brower/Server)的软件系统大多数为HTTP接口;

  • Web Service接口:系统对外的接口,根据提供的方法引用提供的接口,从而获取数据;

  • RESTful接口:简称REST,描述了一个架构式的网络系统;

8.简述TCP与UDP的区别?

1.连接方面:TCP面向连接、可靠的数据流传输(如打电话要先拨号建立连接);UDP是在发送数据之前不需要建立连接,是非面向连接的、不可靠的数据流传输;

2.安全方面:TCP连接传送的数据,无差错,不丢失,不重复,按序到达;UDP尽最大努力交付,数据传输快,不需要连接等待,少了许多操作,安全性一般,不能保证可靠的交付;

3.传输效率:UDP比TCP传输效率高;

4.连接对象数量:TCP连接只能是点到点、一对一的,面向字节流。UDP支持一对一,一对多,多对一和多对多的交互通信,面向报文;

9. 请介绍一下OSI,TCP/IP,五层协议?

OSI七层模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。

TCP/IP网络四层协议:应用层、传输层、网络层、网络接口层。

五层协议:应用层、传输层、网络层、数据链路层、物理层。

10.请简述ping一下的原理?

ping是利用网络上机器IP地址的唯一性,给目标IP地址发送一个 ICMP 回显请求,并要求对方返回一个 ICMP 回显应答来确定两台网络机器是否连接相通,时延是多少。一般用于检测网络通与不通 ,时延值越大,速度越慢。
 

    总结

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面

  自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

​​​

​​​

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值