测试开发面经

目录

1.性能指标有哪些?

[2.get 和 post 的区别](#2.get 和 post 的区别)

[3.HTTP 状态码有哪些?](#3.HTTP 状态码有哪些?)

[4.在 Linux 下查看端口号为80的所有进程命令是什么?](#4.在 Linux 下查看端口号为80的所有进程命令是什么?)


1.性能指标有哪些?

1)并发数

2)吞吐量

3)响应时间

4)事务

5)TPS 和 QPS

6)资源利用率

2.get 和 post 的区别

1)数据传递的位置不同:

get 参数直接拼接到 URL 地址后,能够在浏览器地址栏中直接看到

post 参数放在请求体中,在浏览器地址栏中不可见

2)安全性不同:

get 安全性差,因为参数能够显示在 URL 中,会被浏览器历史记录,服务器日志缓存下来,容易泄密,比如登录时候的密码

post 相对安全,因为数据是放在 body 中,不会被直接缓存或记录在历史记录中,但是也不是绝对安全的,可以通过抓包工具获取到数据

3)传输数据量大小不同

get 有长度限制,因为 URL 有长度限制,(每个浏览器限制不同,通常是几kb),不适合传大文件或大数据

post 没有长度限制,适合传大文件或大数据

4)浏览器的缓存机制不同

get 请求可以被浏览器主动缓存,下次访问相同资源可以直接读取缓存,速度更快

post 默认不会被缓存,每次都要向服务器发起请求

5)TCP数据包发送(底层区别)

get 浏览器会把 header 和 data 一起发出去,服务器响应200(返回数据)

post 浏览器先发 header ,服务器响应100 Continue,浏览器再发送 data ,服务器响应200

6)用途和语义不同

get 主要用于获取/读取数据。它是幂等的,就是多次请求同样的 URL ,结果都是一样,不应该改变服务器状态

post 主要用于提交/修改数据。它不幂等,每次提交都会在服务器中产生新的数据。

3.HTTP 状态码有哪些?

1)1xx:信息性

含义:请求已接收,正在处理中。这个状态码比较少见

代表:100(继续),告诉客户端可以继续发送请求体

2)2xx:成功

含义:请求被正常接收、理解并处理

代表:

200 OK:最常见,请求成功

201 Created:请求成功并创建新的资源。

202 No Content:服务器成功处理了请求,但是没有返回内容

3)3xx:重定向

含义:需要客户端进一步操作才能完成请求

代表:

301 Moved Permanently:永久重定向。旧网址被废弃了,以后去新网站

302 Found:临时重定向。暂时跳到另一个地址

304 Not Modified:缓存相关。资源未修改,告诉客户端直接用本地缓存,不用从服务器。

4)4xx:客户端错误

含义:客户端发送过来的请求有问题,服务器没法处理

代表:

400 Bad Request:请求参数错误或格式不对

401 Unauthorized:未授权。用户未登录或token无效,没有访问权限

403 Forbidden:禁止访问。用户登陆了,但是权限不够,例如普通用户使用管理权限

404 Not Found:资源找不到

405 Method Not Allowed:请求方法不支持,比如接口只支持post,而你却用了get

408 Request Timeout:请求超时

5)5xx:服务器端错误

含义:服务器处理请求时出错了(BUG)

代表:

500 Internal Server Error:服务器内部代码报错

502 Bad Gateway:网关错误(通常是Nginx和后端服务连接不上)

503 Service Unavailable:服务不可用(服务器崩了或在维护)

504 Gatewat Timeout:网关超时(服务器请求太慢,网关等不及了)

4.在 Linux 下查看端口号为80的所有进程命令是什么?

ps 是查看进程命令,grep 是用来配合筛选

netstat、ss 是查看端口号命令

查进程命令:ps -ef | grep 你的进程名

查端口号命令:netstat -tunlp | grep 你的端口号

相关推荐
wjs20243 小时前
TypeScript 命名空间
开发语言
a程序小傲3 小时前
京东Java面试被问:RPC调用的熔断降级和自适应限流
java·开发语言·算法·面试·职场和发展·rpc·边缘计算
独自破碎E3 小时前
MyBatis Flex和MyBatis Plus的区别
java·开发语言·mybatis
葡萄成熟时 !4 小时前
正则表达式
java·正则表达式
无心水4 小时前
微服务架构下Dubbo线程池选择与配置指南:提升系统性能与稳定性
java·开发语言·微服务·云原生·架构·java-ee·dubbo
Chan164 小时前
《Java并发编程的艺术》| 并发关键字与 JMM 核心规则
java·开发语言·数据库·spring boot·java-ee·intellij-idea·juc
期待のcode4 小时前
线程睡眠sleep方法
java·开发语言
gjxDaniel4 小时前
Bash编程语言入门与常见问题
开发语言·bash
汤姆yu4 小时前
基于springboot的植物花卉销售管理系统
java·spring boot·后端