软件测试面试题整理(九)之网络、操作系统、数据库大合集

https://blog.csdn.net/weixin_45912307/article/details/109523694
1. 协议了解有哪些?

  • HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等。超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。

    • HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议

    • 请求行 以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:

      • Method Request-URI HTTP-Version CRLF GET /login?from=%2F HTTP/1.1
        • Method表示请求方法;
        • Request-URI是一个统一资源标识符
        • HTTP-Version表示请求的HTTP协议版本;
        • CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)】。
        • 请求方法(所有方法全为大写)有多种,各个方法的解释如下:
          • GET(请求获取Request-URI所标识的资源),
          • POST(在Request-URI所标识的资源后附加新的数据),
          • PUT(请求服务器存储一个资源,并用Request-URI作为其标识),
          • DELETE(请求服务器删除Request-URI所标识的资源)
    • HTTP响应 也是由三个部分组成,分别是:状态行、消息报头、响应正文

      • 返回状态行HTTP-Version Status-Code Reason-Phrase CRLF
        HTTP/1.1 200 OK

      • HTTP常见的响应状态码有:

        • 200 OK //客户端请求成功
        • 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
        • 403 Forbidden //服务器收到请求,但是拒绝提供服务
        • 404 Not Found //请求资源不存在,eg:输入了错误的URL
        • 500 Internal Server Error //服务器发生不可预期的错误
        • 503 Server Unavailable //服务器当前不能处理客户端的请求
      • 而数字:

        • 2开头的表示请求成功 ;
        • 3开头,重定向,
        • 4开头的一般都是客户端的问题 ;
        • 5开头的一般都是服务器的问题
  • HTTPS是身披SSL外壳的HTTP。HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性

  • HTTP特点:·无状态,无连接,基于请求和响应·:基本的特性,由客户端发起请求,服务端响应简单快速、灵活,通信使用明文、请求和响应不会对通信方进行确认、无法保护数据的完整性。

  • HTTPS特点:基于HTTP协议,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护,如:内容加密,验证身份,保护数据完整性,混合加密,数字摘要,数字签名技术。

  • 客户端输入URL回车,DNS解析域名得到服务器的IP地址,服务器在80端口监听客户端请求,端口通过TCP/IP协议(可以通过Socket实现)建立连接。HTTP属于TCP/IP模型中的运用层协议,所以通信的过程其实是对应数据的入栈和出栈。

  • Tcp协议(传输控制协议):TCP协议又称传输控制协议,是面向连接的可靠传输。udp协议是用户数据报协议,

    • tcp 三次握手
      • 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

      • 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

      • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
        再进行数据传输

2. 为什么需要三次握手呢?

  • 为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。

3. 网络协议了解多少?
原来我们用得比较多的协议是http和https,以及tcp协议

  • http和https都是超文本协议,浏览器发送数据请求基本用的都是他们,不同的是https在http的基础上增加了ssl加密协议,http的默认端口是80,https的默认端口是443,https收费,http免费
  • tcp协议的话,作用在传输层,在发送请求前,会有三次握手。是面向连接的协议,传输过程比较可靠
    36,tcp,udp的区别

4. 三次握手,四次挥手

  • 三次握手:
    • 第一次握手:客户端发送syn包(syn=1,seq=x)到服务器,并进入SYN_SENT状态,等待服务器确认;
    • 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
    • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
      握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。
  • 四次挥手:断开一个TCP连接则需要“四次挥手”。
    • 第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不 会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可 以接受数据。
    • 第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
      -第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
    • 第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。
      在这里插入图片描述

5. http跟https的区别

  • 1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
  • 2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议
  • 3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443
  • 4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

6. osi模型和tcp模型

  • osi七层网络模型

    • 应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
  • TCP模型

    • 应用层(telnet、sftp、http)、
    • 传输层(TCP UDP)、
    • 网络层、
    • 数据链路层

7. get跟post请求的区别

  • GET请求在URL中传送的参数是有长度限制的,而POST没有。
  • GETPOST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。GET参数通过URL传递,POST放在Request body中。
  • 对于GET方式的请求,浏览器会把http headerdata一并发送出去,服务器响应200(返回数据);
    而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok

8 . cookie、session、token

  • cookie: 在客户端用于存储会话信息的
  • session:在服务器端,记录用户的请求状态,一般默认时间30min
    • session_id会存在cookie中,每次请求cookie中所有信息都会传递给服务器,服务器通过session_id来识别是否是同一个用户请求,不是同一个用户的话,就会要求重新登录
  • token:访问权限和身份认证
    • 相当于令牌、口令(动态变化),保存在客户端本地
    • 鉴权:访问的接口是否正常,是否非法访问绕过前端。 防止跳过页面直接访问接口 token
    • 授权:是否具有访问接口的权限。 唯一全局动态的 。

9. http协议包含哪些内容?

  • 1)请求信息
    • 1.请求行:请求方式、请求地址、http版本1.1
    • 2.请求头
      HTTP消息报头包括普通报头、请求报头、响应报头、实体报头
      Cache-Control??:no-cache  缓存 
      Connection :    close/keep-alive 是否关闭或者保持连接
      Accept-Charset :iso-8859-1  字符集
      Accept-Encoding:gzip.deflate 编码格式
      Accept-Language:zh-cn  语言
      Authorization:服务器授权验证
      Host :主机
      User-Agent :
      Location :重定向
      Server :服务器版本信息
      Content-Encoding : 实体报头的编码格式   
      
    • 3.请求正文
      data
  • 2)响应信息
    1.状态行: http版本 、 状态码、状态信息
    2.响应头: 跟请求头一样
    3.响应正文

10. http常见的状态码有哪些?
常见状态码:400、404、200、500、302、501、504

  • 101服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议。

  • 102 (代表处理将被继续执行) 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。

  • 2开头 这一类型的状态码,代表请求已成功被服务器接收、理解、并接受

    • 200成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
    • 201 (已创建) 请求成功并且服务器创建了新的资源。
    • 202 (已接受) 服务器已接受请求,但尚未处理。
    • 203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
    • 204无内容) 服务器成功处理了请求,但没有返回任何内容。
    • 205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。
    • 206 (部分内容) 服务器成功处理了部分 GET 请求。
    • 207 (代表之后的消息体将是一个XML消息),并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。
  • 3开头 (请求被重定向)表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

    • 300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
    • 301永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
    • 302临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
    • 303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
    • 304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
    • 305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。
    • 307临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
  • 4开头 (请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。

    • 400 (错误请求) 服务器不理解请求的语法。
    • 401未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
    • 403 (禁止) 服务器拒绝请求。
    • 404未找到) 服务器找不到请求的网页。
    • 405 (方法禁用) 禁用请求中指定的方法。
    • 406 (不接受) 无法使用请求的内容特性响应请求的网页。
    • 407 (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
    • 408 (请求超时) 服务器等候请求时发生超时。
    • 409 (冲突) 服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
    • 410 (已删除) 如果请求的资源已永久删除,服务器就会返回此响应。
    • 411 (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
    • 412 (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
    • 413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
    • 414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
    • 415 (不支持的媒体类型) 请求的格式不受请求页面的支持。
    • 416 (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
    • 417 (未满足期望值) 服务器未满足"期望"请求标头字段的要求。
  • 5开头(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。
    这些错误可能是服务器本身的错误,而不是请求出错。

    • 500服务器内部错误) 服务器遇到错误,无法完成请求。
    • 501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
    • 502错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。(比如:nginx里设置了反向代理,自己代理给自己,形成了死循环,造成大量的访问日志,每秒上万)
    • 503服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
    • 504网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
    • 505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本

11. TCP/UDP有哪些区别?

  • TCP - 有连接,所以握手过程会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换
  • UDP - 非可靠连接,会丢包,没有校验,速度快,无须握手过程
					TCP					UDP

是否连接			面向连接		|			面向非连接
传输可靠性		可靠的		|			不可靠的
应用场合			传输大量数据	|			少量数据
速度				慢			|			快

12. 路由器和交换机区别
路由器和交换机最核心的区别:使用场景不同,路由器用于网络出口,交换机用于园区内部数据交换
正是由于使用场景不同,造成了别的差异:

  • 1、路由器用于出口,连接运营商链路,一般接口数量较少,但接口类型较多,支持ATM/POS/CPOS接口;
    而交换机用于内部数据交换,连接用户,接口数量较多,都是以太网接口(电口RJ45,光SFP)
  • 2、支持功能不同,路由器支持NAT,IPSEC等广域网功能。
    而交换机会支持一些防ARP欺骗,端口安全等局域网功能。
  • 3、性能差异也很大,内部核心交换机可以达到100T交换容量,而出口一般几十个G, 毕竟运营商给的链路带宽不会太大,20G撑死。

13. 在Linux系统中,一个文件的访问权限是755,其含义是什么?

  • 755表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。
  • 4
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值