接口自动化面试题

1.http请求都包含哪些内容,请求头和请求体有哪些内容

请求行/请求头/请求体/空行

请求行:请求方法字段、URL字段、http协议版本 例如:GET /index.html HTTP/1.1

请求方法:GET、POST、PUT、DELETE、OPTIONS、TRACE、CONNECT、HEAD

请求头:headers (key value形式)

user-agent:产生请求的浏览器类型

accept:客户端可识别内容类型

host:主机地址

cookie:

空行:最后一个请求头字段的后面是一个空行,通知服务器请求头部至此结束。请求消息中的空行,用来分隔请求头部与请求体

请求体:请求中传输的数据

请求体中存放的,是要通过 POST 方式提交到服务器的数据。只有 POST 请求才有请求体,GET 请求没有请求体!

响应体:响应体中存放的,是服务器响应给客户端的资源内容

2.post和put的区别

post:(新增)向服务器提交资源(例如提交表单,json或上传文件)数据被包含在请求体中传递给服务器

put:(修改)向服务器提交资源,并使用提交的新资源,替换调服务器旧的资源

get:(查询)发送请求来获得服务器上的资源,请求体中不包含请求数据,请求数据放在协议头中

delete:(删除)请求服务器删除指定的资源

head:head方法请求一个与GET请求的响应的响应,但没有响应体

patch:是对put方法的补充,用来对已知资源进行局部更新

options:获取http服务器支持的http请求方法,允许客户端查看服务器的性能,比如ajax跨域时的预检等

trace:沿着到目标资源的路径执行一个消息环回测试,主要用于测试或诊断

connect:建立一个到由目标资源标识的服务器的隧道

3.Linux命令如何删除一个月前的某个路径下的内容

find /user/oce -mtime +30 -name "*.*" -exec rm -Rf {}\;

4.testng注解有哪些

TestNG-常用注解介绍_testng注解-CSDN博客

1>before 类别和after类别注解

@BeforeSuit @AfterSuit

@BeforeTest @AfterTest

@BeforeClass @AfterClass

@BeforeMethod @AfterMethod

上述的注解分为Before类别和After类,我们可以在Before类别的注解方法里面做一些初始化动作,如实例化数据库连接、新建数据库连接池、创建线程池、打开文件流等等。然后,我们可以在After类别的注解方法里面做一些销毁动作,如释放数据库连接、销毁数据库连接池、销毁线程池或者关闭文件流等等。同一类别的不同注解会在不同的位置被调用.

2>@Test 注解

3>@Parameters注解

4>@DataProvider注解

5>@Factory注解

6>@Listeners注解

5.JAVA和python实现序列化和反序列化

了解Python序列化 - 知乎

java序列化和反序列化的实现原理

【精选】java序列化和反序列化的实现原理

6.jdk,jre,jvm之间的联系

一、JDK,JRE,JVM是什么?

JDK(java development kit):编译环境。Java 开发工具包。JDK 是整个 Java 开发的核心,它集成了 JRE 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。JDK包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

通常在安装好JDK之后,JRE也会自动安装好

JRE (java runtime environment):运行环境。负责装载用户自定义的类(分为从本地装载和从网络装载两种)和java API类。

JVM :平台软件,负责将字节码解释成机器码并提交操作系统执行。换句话说,JVM就是Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。jvm调用解释所需的类库lib,而jre包含lib类库。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行(跨平台性:不同的浏览器安装不同的java虚拟机,jvm将字节码与对应操作系统相映射,达到java程序的跨平台性)。

简单来说三者的关系是:JDK>JRE>JVM。

如果想要 运行 一个开发好的 Java 程序,计算机中只需要安装 JRE 即可。

二、JDK、JRE、JVM关系

JDK = JRE + 开发工具集(例如 Javac 编译工具等)

JRE = JVM + Java SE 标准类库

联系与区别:

1.我们利用JDK写了自己的JAVA代码程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

2.JDK和JRE区别:在bin文件夹下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(只需要运行的人)是不需要的。JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。jdk是给开发人员使用的,jre和jvm是给普通用户使用。

3.JRE和JVM区别:JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持(rt.jar)

7.授权和认证的区别

认证和授权的区别:

  • 认证是验证确认身份以授予对系统的访问权限。授权确定你是否有权访问资源。

  • 认证是验证用户凭据以获得用户访问权限的过程。授权是验证是否允许访问的过程。

  • 认证决定用户是否是他声称的用户。授权确定用户可以访问和不访问的内容。

  • 认证所需的身份验证通常需要用户名和密码。授权所需的身份验证因素可能有所不同,具体取决于安全级别。

  • 身份验证是授权的第一步,因此始终是第一步。授权在成功验证后完成。

什么是认证

认证是关于验证你的凭据,如用户名/邮箱和密码,以验证访问者的身份。系统确定你是否就是你所说的使用凭据。在公共和专用网络中,系统通过登录密码验证用户身份。身份认证通常通过用户名和密码完成,有时与认证可以不仅仅通过密码的形式,也可以通过手机验证码或者生物特征等其他因素。

在某些应用系统中,为了追求更高的安全性,往往会要求多种认证因素叠加使用,这就是我们经常说的多因素认证。常见的认证方式:

  • 用户名密码认证
  • 手机和短信验证码认证
  • 邮箱和邮件验证码认证
  • 人脸识别/指纹识别的生物因素认证
  • OTP 认证
  • Radius 网络认证

什么是授权

授权发生在系统完成身份认证之后,最终会授予你访问资源(如信息,文件,数据库,资金,位置,几乎任何内容)的完全权限。简单来说,授权决定了你访问系统的能力以及达到的程度。

授权是确定经过身份验证的用户是否可以访问特定资源的过程。它验证你是否有权授予你访问信息,数据库,文件等资源的权限。授权通常在验证后确认你的权限。简单来说,就像给予某人官方许可做某事或任何事情。

例如,验证和确认组织中的邮箱和密码的过程称为认证,但确定哪个员工可以访问哪个楼层称为授权。假设你正在旅行而且即将登机。当你在登记前出示机票和一些身份证明时,你会收到一张登机牌,证明机场管理局已对你的身份进行了身份验证。但那不是它。乘务员必须授权你登上你应该乘坐的航班,让你可以进入飞机内部及其资源。

9---10.数据库语句查询多表查询

相关推荐
小han的日常22 分钟前
接口自动化环境搭建
运维·自动化
小扳24 分钟前
Docker 篇-Docker 详细安装、了解和使用 Docker 核心功能(数据卷、自定义镜像 Dockerfile、网络)
运维·spring boot·后端·mysql·spring cloud·docker·容器
运维小文28 分钟前
服务器硬件介绍
运维·服务器·计算机网络·缓存·硬件架构
是安迪吖39 分钟前
nfs服务器
运维·服务器
鱼骨不是鱼翅40 分钟前
模拟回显服务器
运维·服务器
Elastic 中国社区官方博客2 小时前
使用真实 Elasticsearch 进行更快的集成测试
大数据·运维·服务器·数据库·elasticsearch·搜索引擎·集成测试
舞动CPU7 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
皮锤打乌龟8 小时前
(干货)Jenkins使用kubernetes插件连接k8s的认证方式
运维·kubernetes·jenkins
钰@8 小时前
小程序开发者工具的network选项卡中有某域名的接口请求,但是在charles中抓不到该接口
运维·服务器·小程序
wanhengwangluo9 小时前
云服务器和物理服务器的区别有哪些?
运维·服务器