软件测试面试大全

软件测试面试大全

  • 一、软件测试基础部分
    • 1、软件项目成员有哪些/li>
    • 2、软件的概念是什么/li>
    • 3、你对软件测试的定义是怎么的/li>
    • 4、你对软件Bug的概念是怎样的/li>
    • 5、软件Bug级别有几种/li>
    • 6、软件Bug状态有哪些/li>
    • 7、你对软件质量是怎样定义的/li>
    • 8、软件质量的特性有哪些/li>
    • 9、软件生命周期概念是什么/li>
    • 10、软件测试目的是什么/li>
    • 11、软件测试原则是什么/li>
    • 12、测试分为哪几个阶段/li>
    • 13、如何做好测试计划
    • 14、软件测试流程
    • 15、了解测试流程吗/li>
    • 16、了解 bug 处理流程吗/li>
    • 17、你工作中的沟通对象一般都是哪些人/li>
    • 18、常用的测试工具有哪些/li>
    • 19、工作效率如何有哪些成果/li>
    • 20、测试执行步骤是怎么样的/li>
    • 21、软件测试模型有哪些/li>
    • 22、测试用例是怎么设计的/li>
    • 23、测试计划包含哪一些内容/li>
    • 24、测试 告包含有哪些内容/li>
    • 25、一条bug记录包含哪些内容/li>
    • 26、Alpha测试与Beta测试的区别/li>
    • 27、软件测试分类
    • 28、软件测试风险
    • 29、TDD(测试驱动开发,Test Driver Developer)
    • 30、各种测试名词解释
  • 二、 络基础知识
    • 1、linux 常用命令 — 基础命令
    • 2、http/https协议
    • 3、TCP/IP协议
    • 4、tcp 和 udp 的区别/li>
    • 5、socket建立连接的过程/li>
  • 三、自动化测试
    • 1、如何分层自动化测试/li>
    • 2、如何降低自动化维护成本
    • 3、如何保证脚本的有效性/li>
    • 4、什么是进程、线程、协程/li>
    • 5、常见测试覆盖类型
    • 6、说一下面向对象的概念/li>
    • 7、python 笔试题
      • 1. 统计
      • 2. 字符串切片
      • 3. 字符串切割
      • 4. 格式化输出
      • 5. 队列
      • 6. 交换
      • 7. 水仙花:指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
      • 8. 完全数
      • 9. 排序
      • 10. sort排序
      • 11. 计算n的阶乘
      • 12. 斐波那契数列
      • 13. 汉诺塔问题
    • 8、selenium面试题
  • 四、性能测试
  • 五、接口测试
    • 1、接口测试常规面试题
    • 2、接口自动化面试题
  • 六、APP测试
    • 1、什么是activity/li>
    • 2、Activity生命周期/li>
    • 3、Android四大组件
    • 4、app测试和web测试有什么区别/li>
    • 5、android和ios测试区别/li>
    • 6、app出现ANR,是什么原因导致的/li>
    • 7、App出现crash原因有哪些/li>
    • 8、app对于不稳定偶然出现anr和crash时候你是怎么处理的/li>
    • 9、app的日志如何抓取/li>
    • 10、logcat查看日志步骤
    • 11、你平常会看日志吗, 一般会出现哪些异常
  • 七、数据库
    • 1、sql查询
    • 2、sql链接查询
    • 3、做成函数调用
  • 八、安全/渗透测试
  • 九、开放性思维题
    • 1、搜索输入框测试用例设计
    • 2、对电梯进行测试用例设计
    • 3、对杯子进行测试用例设计
    • 4、对桌子进行测试用例设计
    • 5、对洗衣机进行测试用例设计
    • 6、购物车功能设计测试用例
    • 7、支付功能设计测试用例

一、软件测试基础部分

该部分主要围绕测试基础知识,测试理论、测试方法、测试周期等方面汇总的面试问题。

1、软件项目成员有哪些/h2>
  1. 项目经理: 驱动整个项目的运转,负责制定计划,安排人力,管理进度,协调团队,进行重大决策。
  2. 产品经理(需求开发人员): 和客户沟通需求,并制定产品需求
  3. 架构师 / 系统工程师: 技术专家,经验丰富,负责整个系统的体系架构的设计以及关键模块的设计。
  4. 程序员 / 开发人员: 设计、编写软件,并修复软件中的缺陷。
  5. 测试工程师: 负责找出软件产品存在的问题并 告。

2、软件的概念是什么/h2>
  1. 定义:计算机系统中与硬件相互依存的一部分,它是包括程序,数据及其相关文档的完整集合
  2. 程序:按事先设计的功能和性能要求执行的指令序列
  3. 数据:使程序能正常操纵信息的数据结构
  4. 文档:与程序开发、维护和使用有关的图文资料

3、你对软件测试的定义是怎么的/h2>
  • 定义:软件质量保证的一种手段
  • 概念:是软件工程中的一个非常重要的环节,是开发项目整体的一部分。是有计划有组织的,是伴随软件工程的诞生而诞生的,软件测试不是万能的,不可能发现全部缺陷,软件测试是有局限性的。
  • 目的:验证被测对象是否实现用户需求
  • 弄清:实际结果与预期结果之间的差异

4、你对软件Bug的概念是怎样的/h2>

1. 你怎么定义是不是Bug/strong>

  • 软件没有实现产品的说明书所描述的功能。
  • 软件实现了产品说明书描述不应有的功能。
  • 软件执行了产品说明书没讲的操作。
  • 软件没有实现产品说明书没描述但应该实现的功能(用户体验相关)。
  • 从软件测试员的角度来看,软件难以理解、不易使用、运行缓慢,或者最终用户认为不对。

2. bug的类型都有哪些/strong>

  • Bug有代码编写错误导致的功能问题
  • Defect缺,实现与需求不一致
  • Fault即故障,由于环境系统问题引起运行失败
  • Error即错误,语法错误,逻辑错误,不易发现

5、软件Bug级别有几种/h2>
  • 微小的==》一些小问题
    如:错字,文字排版不整齐等,对功能几乎没有影响,软件产品仍可使用。

  • 一般的==》不太严重的错误
    如:主要功能模块部分丧失、提示信息不够准确、用户界面差和操作运行时间长等。

  • 严重的==》严重错误
    指功能模块和特性没有实现,主要功能部分丧失,次要功能全部丧失。

  • 致命的==》严重的致命的错误
    造成系统崩溃,四级,或造成数据丢失、主要功能完全丧失等。
    如:死机、宕机、黑白屏无法使用、完全卡死

6、软件Bug状态有哪些/h2>
  • 激活状态==》问题没解决
    测试人员新 告的缺陷或者验证后缺陷仍存在。

  • 已修正状态==》开发人员针对缺陷
    修正软件后已解决问题或已通过单元测试 。

  • 关闭状态==》测试人员经过验证后,确认缺陷不存在之后的状态 。

  • 遗留状态==》此次版本升级不修改,遗留到下一版本修改。

  • 非错状态==》就是此问题不是一个Bug,开发可以直接置为关闭

7、你对软件质量是怎样定义的/h2>
  • 软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”;
  • 明确的需求指:软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准;
  • 隐含的需求指:所有专业开发的软件都应具有的隐含特征的程度,比如:符合行业标准。
  • 内部质量:软件内部的设计和静态测试是否合格
  • 过程质量:关注软件的整个生产流程是否规范是否合理
  • 外部质量:关注软件产品本身的功能和性能表现
  • 使用质量:关注软件在使用过程中易用性满意度的表现

8、软件质量的特性有哪些/h2>
  • 件质量的六大特性是什么/strong>
    1.功能性
    定义:软件在指定的使用环境下,满足用户显性或隐性需求的能力
    适合性:软件为指定的任务和用户目标提供一组合适功能的能力
    准确性:软件提供具有所需精确度的正确或相符的結果或效果的能力
    互操作性:软件与一个或更多个的规定系统进行交互的能力
    2.可靠性
    定义:软件在指定的条件下使用,维持规定的性能级别的能力
    成熟性:软件为避免由软件中错误而导致失控的能力,
    容错性:在软件出现故障或违反指定接口的情况下,软件维持规定性能级别的能力,
    易恢复性:在失效发生的情况下软件里重建规定的件能级别并恢复受直接影响的数据的能力
    可靠性依从性:软件遵循与可靠件相关的标准,约定以及法律法规的能力
    3.效率
    定义:在规定的条件下,相对于所用资源的数量,软件提供适当性能的能力
    时间特性:在规定的条件下软件执行其功能时,提供适当的响应和处理时间以及吞吐率的能力
    资源利用性:在规定的条件下软件执行其能力时,使用合适的资源数量和类别的能力
    效率依从件:软件遵循与效率相关的标准和约定的能力
    4.易用性
    定义:在指定的条件下使用时,软件被学习,理解,使用和吸引用户的能力
    易理解性:软件的使用,用户能理解软件是否合适,以及如何将软件用于特定的任务和使用环境的能力
    易学习:软件使用户能学习其应用的能力易操作性:软件使用用户操作和控制它的能力
    吸引性:软件吸引用户的能力
    易用性依从性:遭循与易用性相关的标准、约定风格指南或法规的能力
    5.可维护
    定义:软件可被修改的能力,修改可能包括修正、改进或软件对环境、需求和功能规格说明变化的适应性
    易分析性:软件诊断软件的缺陷,失效原因或识别待修改部分的能力,
    易改变性:软件指定的修改可以被实现的能力
    稳定性:软件避免由于软件修改而造成意外结果的能力,
    易测试性:软件使已修改软件能被确认的能力
    可维护依从性:遵循与维护相关标准和约定的能力
    6.可移植
    定义:软件从一种环境迁移到另一种环境的能力
    适用性:软件能适用于不同的环境的能力
    易安装性:软件在指定环境中被安装的能力
    共存性:软件在公共环境中同与其分享公共资源的其他独立软件共存的能力
    易替换性:软件在同样的环境下,替代另一个相同用途的指定软件产品的能力
    可移植性依从性:软件遵循可移植性相关的标准和约定的能力

9、软件生命周期概念是什么/h2>

需求分析 —》可行性分析 —》概要设计 —》详细设计 —》编码实现 —》调试和测试 —》软件验收与应用 —》维护升级 —》废弃

10、软件测试目的是什么/h2>

测试的目的不仅仅是为了发现软件缺陷与错误,而且也是对软件质量进行度量和评估,以提高软件的质量。

  1. 发现:被测对象与用户需求之间的差异
  2. 增加:用户对被测对象的质量信息
  3. 获取被测对象信息,为决策提供依据
  4. 为软件质量的可持续运行提供保障
  5. 预防Bug,降低风险

11、软件测试原则是什么/h2>

基于测试是为了寻找软件的错误与缺陷,评估与提高软件质量,因此我们提出了这样的一组测试原则,如下所示。

  1. 所有的软件测试都应追溯到用户需求。
  2. 应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
  3. 完全测试是不可能的,测试需要终止。
  4. 测试无法显示软件潜在的缺陷。
  5. 充分注意测试中的群集现象。
  6. 程序员应避免检查自己的程序。
  7. 尽量避免测试的随意性

12、测试分为哪几个阶段/h2>
  • 单元测试
  • 集成测试
  • 系统测试
  • 验收测试

13、如何做好测试计划

5W原则:

  1. What (明确测试什么)
  2. Why(明确测试目标)
  3. When(明确项目开始时间、结束时间)
  4. How(明确测试方案)
  5. Where(明确资料的位置)

14、软件测试流程

  • 第二步:
    设计测试用例。设计测试用例要根据测试需求和测试策略来进行,进度压力不大时,应该设计的详细,如果进度、成本压力较大,则应该保证测试用例覆盖到关键性的测试需求。该用例被批准后转向第三步。

  • 第三步:
    如果满足“启动准则”(EntryCriteria),那么执行测试。执行测试主要是搭建测试环境,执行测试用例。执行测试时要进行进度控制、项目协调等工作。

  • 第六步:
    撰写测试 告。对测试进行分析,总结本次的经验教训,在下一次的工作中改。
    软件测试过程管理,主要包括软件测试是什么样的过程,如何评价一个软件测试过程,如何进行配置管理和测试风险分析以及测试成本的管理。

15、了解测试流程吗/h2>
  1. 需求分析【需求沟通,确定需求,功能点含义,】
  2. 需求评审【制定测试方案】
  3. 设计测试用例
  4. 用例评审
  5. 测试计划
  6. 搭建测试环境
  7. 测试执行
  8. bug 处理
  9. 回归测试
  10. 测试 告
  11. 跟进上线

16、了解 bug 处理流程吗/h2>

  • 动态测试(Execution-Based Testing)
    实际运行被测试的软件,输入相应的测试数据,检查界面的输出结果是否和预期结果相一致的过程。

  • 黑盒测试(Black box)
    把软件看成一个黑盒子,不管内部逻辑和内部特性,只依据规格说明书检查程序的功能是否符合功能说明

  • 白盒测试(White box)
    又称为结构测试。着重于程序内部结构和算法,不关心功能和性能指标。

  • 灰盒测试(Gray box)
    介于白盒和黑盒测试之间,基于程序运行时刻的外部表现同时又结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。

  • 灰盒测试有啥缺点/strong>
    当然,凡事都有优点和缺点,灰盒测试自然也不例外。下面列举它的主要缺点。

    1. 不适用于简单的系统
         所谓的简单系统,就是简单到总共只有一个模块。由于灰盒测试关注于系统内部模块之间的交互。如果某个系统简单到只有一个模块,那就没必要进行灰盒测试了。
    2. 对测试人员的要求比黑盒测试高
        从上面的介绍来看,灰盒测试要求测试人员清楚系统内部由哪些模块构成,模块之间如何协作。因此,对测试的要求就提高了。因此,会带来一定的培训成本。不过捏,依照俺的经验,培训难度不大。稍微有点基础的测试人员,都可以在短期培训之后胜任。
    3. 不如白盒测试深入
      显然,灰盒不如白盒那么深入。不过捏,考虑到灰盒测试相比白盒测试有显著的成本优势,该缺点不是太明显。
    • 回归测试(Regression Testing )
      对软件的新版本测试时,重复执行上一个版本测试时使用的测试用例。防止出现“以前应用没有的问题现在出问题了” 。

    • 冒烟测试(BVT测试(Build Verification Test ))
      冒烟测试的对象是每一个新编译需要正式测试的版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试,也叫预测试。

    • 随机测试(又名猴子测试,探索性测试)
      测试数据是随机产生的,在测试用例之外。只能作为一个测试的补充。

    • 敏捷测试(敏捷开发引起)
      首先敏捷测试(Agile testing)是测试的一种,原有测试定义中通过执行被测系统发现问题,通过测试这种活动能够提供对被测系统提供度量等概念还是适用的。

    • TDD(测试驱动开发,Test Driver Developer)
      测试驱动开发的基本思想就是在开发功能代码之前,先编写测试用例。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完成全部功能的开发。

    二、 络基础知识

    本篇收集了几个被问的频率较高的linux面试题

    1、linux 常用命令 — 基础命令

    1. cd
      语法:cd [路径]
      功能:切换目录
      进入home目录:cd /home
      cd . :进入当前目录
      cd … :进入上一级目录
      cd – :进入上次的目录
      cd :进入当前目录的home目录
      cd ~ :进入当前目录的home目录
      cd / :进入到根目录
    2. ls
      语法:ls [选项] [路径]
      功能:显示文件以及目录
      -a 显示所有文件以及目录。
      -l 列出文件名称外,还将文件形态、权限、拥有者、文件大小等详细信息列出。
      例:
      1.ls:显示当前目录下的所有文件及目录
      2.ls /home:显示home目录下的所有文件及目录
    3. cp
      语法:cp [选项] 源文件或目录 目标文件或目录
      功能:拷贝文件
      -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
      -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
      例:cp /home/test1.txt /data
      将home目录下的test1.txt文件复制到data目录下
    4. mkdir
      语法:mkdir [文件夹名]
      功能:新建一个目录
      例:mkdir /user_tool
      建立一个名字为“user_tool”的文件夹
    5. rmdir
      语法:rmdir [选项] [文件夹名]
      功能:删除目录
      – p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。
      例:rmdir /user_tool
      删除一个名字为“user_tool”的文件夹
    6. rm
      语法:rm [选项] [文件以及文件夹]
      功能:删除档案及目录
      -r是递归处理,就是一层一层的删;将目录及以下之档案亦逐一删除。
      -f是强制删除。
      例:rm -r homework
      删除homework目录及其下的所有文件及子目录
      rm -r *
      删除当前目录下的所有文件及目录
    7. tar
      压缩和解压命令
      语法:tar [选项] [文件目录列表]
      功能:对文件目录进行打包备份
      tar -cvf log.tar log2012.log 仅打包,不压缩!
      tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩
      tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩
      tar –xvf file.tar 解压 tar包
      tar -xzvf file.tar.gz 解压tar.gz
      tar -xjvf file.tar.bz2 解压 tar.bz2
      tar –xZvf file.tar.Z 解压tar.Z
    8. mv
      修改文件或文件夹名
      mv [options] 源文件或目录 目标文件或目录。
      例:
      mv test.txt wbk.txt
      mv file1 file2
      把当前目录下的file1文件名改成file2,如果该目录下有file2,则覆盖以前的file2文件。
    9. pwd
      语法:pwd
      显示当前工作目录的绝对路径
    10. clear
      语法:clear
      功能:清屏
    11. cat
      查看文件
      例:
      cat /proc/version
      查看linux内核版本
    12. chmod
      语法格式为:chmod [who] [opt] [mode] 文件/目录名
      功能:修改文件的写读执行权限
      参数分别表示User、Group、及Other的权限。
      r=4,w=2,x=1
      若要rwx属性则4+2+1=7;
      若要rw-属性则4+2=6;
      若要r-x属性则4+1=5。
      例:chmod 777 a.txt
    13. find
      语法:find [文件及路径]
      功能:查找指定的文件
      find . -name “*.c”
      将目前目录及其子目录下所有扩展名是c的文件列出来。
    14. locate
      语法:cp [选项][文件目录]
      功能:查找文件或目录
      例:
      locate /etc/my
      /etc/my.cnf
      搜索etc目录下所有以my开头的文件
    15. grep
      语法:grep [选项] ”模式“ [文件]
      功能:搜索字符串得 grep 命令
      例:grep test *file
      在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件
    16. ps
      语法:ps [options] [–help]
      功能:显示当前进程 (process) 的状态
      例:ps -a
      列出所有的进程
    17. kill
      语法:kill [进程名]
      功能:杀死进程
      例:
      kill 12345
      将进程12345结束
      注意:可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程
    18. tree
      功能:以树状图列出文件目录结构
      注意:如果tree安装包没有安装,请执行:sudo apt install tree
    19. tail
      查看文件的后几行
      -n 后面接数字,表示查看几行(也可以不加, 默认查看文件后10 行 )
      例:tail -5 /etc/passwd
      查看后5行内容

    2、http/https协议

    1. 浏览器输入url按回车背后经历了哪些br> (1)进行DNS解析(域名解析),获取Web服务器的IP地址。
      (2)建立TCP连接。
      三次握手过程:
      第一次握手:客户端向服务器端发送请求,等待服务器确认。
      第二次握手:服务器收到请求并确认,回复一个指令。
      第三次握手:客户端收到服务器的回复指令并返回确认。
      (3)向Web服务器发送HTTP请求。
      (4)Web服务器接收到请求并处理。
      (5)Web服务器返回响应。
      (6)浏览器对响应进行解码,并显示数据。
      (7)页面显示完成后,浏览器发送异步请求。
      (9)关闭TCP连接。

    2. get和post的区别br> (1).GET在浏览器回退时是无害的,而POST会再次提交请求。
      (2).GET产生的URL地址可以被Bookmark,而POST不可以。
      (3).GET请求会被浏览器主动cache,而POST不会,除非手动设置。
      (4).GET请求只能进行url编码,而POST支持多种编码方式。
      (5).GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
      (6).get方式提交数据的大小(一般来说1024字节),http协议并没有硬性限制,而是与浏览器、服务器、操作系统有关,而POST理论上来说没有大小限制,http协议规范也没有进行大小限制,但实际上post所能传递的数据量根据取决于服务器的设置和内存大小。
      (7).对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
      (8).GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
      (9).GET参数通过URL传递,POST放在Request body中。

    3. cookies机制和session机制的区别
      具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
      同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择。

    4. 常见的HTTP状态码有哪些/p>

      • 2xx(3种)
        200 OK:表示从客户端发送给服务器的请求被正常处理并返回
        204 No Content:表示客户端发送给客户端的请求得到了成功处理,但在返回的响应 文中不含实体的主体部分(没有资源可以返回);
        206 Patial Content:表示客户端进行了范围请求,并且服务器成功执行了这部分的GET请求,响应 文中包含由Content-Range指定范围的实体内容。
      • 3xx(5种)
        301 Moved Permanently永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改的URL;
        302 Found临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL;
        301与302的区别:前者是永久移动,后者是临时移动(之后可能还会更改URL)
        303 See Other:表示请求的资源被分配了新的URL,应使用GET方法定向获取请求的资源;
        302与303的区别:后者明确表示客户端应当采用GET方式获取资源
        304 Not Modified:表示客户端发送附带条件(是指采用GET方法的请求 文中包含if-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since中任一首部)的请求时,服务器端允许访问资源,但是请求为满足条件的情况下返回改状态码;
        307 Temporary Redirect:临时重定向,与303有着相同的含义,307会遵照浏览器标准不会从POST变成GET;(不同浏览器可能会出现不同的情况);
      • 4xx(4种)
        400 Bad Request:表示请求 文中存在语法错误
        401 Unauthorized未经许可,需要通过HTTP认证;
        403 Forbidden:服务器拒绝该次访问(访问权限出现问题
        404 Not Found:表示服务器上无法找到请求的资源,除此之外,也可以在服务器拒绝请求但不想给拒绝原因时使用;
      • 5xx(2种)
        500 Inter Server Error:表示服务器在执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的错误时;
        503 Server Unavailable:表示服务器暂时处于超负载或正在进行停机维护,无法处理请求;
    5. http协议有哪几种请求方式br> Get:请求指定的页面信息,并返回实体主体
      Post:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中,post请求可能会导致新的资源的建立和/或已有资源的修改
      Head:类似于get请求,只不过返回的响应中没有具体的内容,用于获取 头
      Options:允许客户端查看服务器的性能
      Put:从客户端向服务器传送的数据取代指定的文档的内容
      Delete:请求服务器删除指定的页面
      Trace:回显服务器收到的请求,主要用于测试或诊断
      Connect:http/1.1协议中预留给能够将连接改为管道方式的代理服务器

    6. http和https区别/p>

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

      • 起始行(start line): 描述请求或响应的状态
      • 头部字段(header): 以 key:value 的形式展示
      • 数据实体(entity/ body) :实际要传输的数据,可以是文本,也可以是图片、文件、视频等二进制数据
    8. 常见的 POST 提交数据方式

      • application/x-www-form-urlencoded:在发送前编码所有字符(默认),提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。
      • multipart/form-data:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
      • text/xml:空格转换为 “+” 加 ,但不对特殊字符编码。使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范。
      • application/json:JSON 格式支持比键值对复杂得多的结构化数据。
    9. 什么是DNSbr> DNS是一个域名系统,是万维 上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联 ,而不用去记住能够被机器直接读取的IP数串,DNS就是进行域名解析的服务器。。

    10. 什么是Http协议无状态协议么解决Http协议无状态协议br> 无状态协议:

      • 协议对于事务处理没有记忆能力【事物处理】【记忆能力】
      • 对同一个url请求没有上下文关系【上下文关系】
      • 每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况【无直接联系】【受直接影响】
      • 服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器【状态】

      解决办法:
      加入cookie、session等机制实现有状态的web。

    3、TCP/IP协议

    • TCP的四次挥手断开连接过程:

      声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2021年1月22日
    下一篇 2021年1月22日

    相关推荐