目录
[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 你的端口号