013、基础知识,常见面试题

 参考:https://www.bilibili.com/video/BV1Lq4y137aR?p=6

 

1、为什么离职

技术上很难有新的进步,发展空间也有局限性,而我更希望挑战一下自己,尝试一些新的技术 。

 

2、结合一个具体业务场景,问你如何测试?

举例:双11优惠券当天可用,满100减50,特价商品不能使用。

a、双11优惠券当天可用(边界值);

b、满100减50(边界值),同时考虑满200减100;

c、特价商品不能使用;

其他的场景:

a、ui检查:优惠券的金额显示,有效时间显示,优惠券数量,优惠券是否可以排列顺序,使用后是否显示已使用并置灰,在记录中可以查询到;

b、优惠券状态:已领取未使用、已领取已使用、已使用已退款;

c、检查支付时能自动选择优惠券、并且智能选择最大优惠组合、同时支持自选择不同优惠券;

d、2张优惠券是否可用叠加使用;优惠券是否可以和其他优惠券组合使用;

e、使用优惠券购买商品退货的场景,支付金额和优惠券是否退还;

f、优惠券下架后是否可用继续使用;

 

3、如何区分前后端bug

a、如果前端输入的请求参数在fiddleri显示没有问题,同时请求地址请求方法Webform中的数据也没问题在fiddler中显示也没问题,而返回的而数据结果有问题,不是期望的结果,那应该是后端的问题;

b、如果前端的数据在fiddler中显示有问题,后端返回的数据100%错误,那么应该是前端的问题;

c、比如抓登录的包,密码是加密的,需要找开发要解密工具,确定请求参数是否正确;

d、除fiddler抓包分析外,还可用linux系统的 tail -f 查看日志分析;

 

4、http协议 与 https协议 的区别

a、http协议:信息是明文传输的,80 端口; 

b、https协议是由http+ssl构成的加密传输协议,443端口;

     地址栏前面有一把锁;fiddler抓https包时需要安装证书;本地会有第三方的数字证书;先是非对称加密传输 建立连接,然后是对称加密 传输内容;

c、fiddler安装后默认可用抓http的包,在用fiddler抓https包的时候,我们需要手动下载—>安装一个数字证书,这个过程中的我,类似颁发证书的机构 ;

 

5、常见的Post提交数据的方式有哪些?

     主要有四种方式,四种方式主要取决于Content-Type这个请求头;

  • application/x-www-form-urlencoded  : 相当于通过表单方式去提交数据,数据报文是字典,提交的数据按照 key1=val1&key2=val2 的方式进行编码;
  • multipart/form-data : 报文包含有文件上传;
  • application/json : 序列化后的 JSON 字符串;用的最多;
  • text/xml : 报文是字符串;
  • binary : 报文是以二进制的方式上传文件;

 

6、常见的请求头以及他们的作用?

Content-Type: application/x-www-form-urlencoded; charset=UTF-8  ;请求内容的报文格式 ;

User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0  ,发送请求的客户端类型,爬虫会关注这个;

Cookie:Cookie信息

 

7、post 和 get 的区别?

参考:https://www.cnblogs.com/logsharing/p/8448446.html

a、传递参数的方式不一样:get是通过地址栏的方式传参,post是通过表单传参;

b、传参的长度不一样:get有长度限制,不同浏览器的长度不一样;

c、get一般是获取数据,比如查询;post提交数据,比如:增、删、改;

d、get是明文,所以 post 比 get更安全 ;

e、GET产生一个TCP数据包;POST产生两个TCP数据包。

     详细说:

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

     而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

     也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。

 

8、接口请求中常见的返回状态码

 参考:https://www.cnblogs.com/nangcr/p/informational-responses-status-code-100-in-http.html

1xxx     信息提示,表示请求已接收,继续处理;

 2xxx     请求成功;

 3xxx     重定向;

 4xxx     客户端的错误;

 5xxx     服务端的错误;

100状态码,说明服务器收到了请求的初始部分,并且请客户端继续发送。

                    在服务器发送了 100 Continue 状态码之后,如果收到客户端的请求,则必须进行响应;

200状态码,请求成功;

302状态码,重定向;

404状态码,服务器找不到请求的网页;

500状态码, 服务器内部错误;

 

9、cookie、 session、 token 相同点和不同点;

参考:https://www.cnblogs.com/xp1315458571/p/15001677.html

相同点:都是用于鉴权并且都是服务器生成的;

不同点:

cookie ,   数据存放在客户端的浏览器上,cookie不是很安全,且保存数据有限;

session , 数据放在服务器上,默认保存30分钟,当访问增多,占用服务器性能;一般会生成sessionID,sessionID可用通过cookie传递;

token,     服务器生成 token,客户端拿到 token 后会保存到本地,之后向 server 请求时在请求头带上此 token 即可;server 会有一套校验机制,校验这个 token 是否合法,这样就不会出现session那样大量访问时占用服务器资源;

Cookie是不允许垮域访问的,但是token是支持的;

 

posted @ 2021-11-16 23:14  空-山-新-雨  阅读(70)  评论(0编辑  收藏  举报