测试基础 面试之 get 和 post 区别

约翰 · 2020年12月15日 · 最后由 云中一只猫 回复于 2020年12月16日 · 2235 次阅读

get 和 post 的区别可以从两个角度来看
1)前端请求
get 一般理解为是:读取内容
post 是表单 form 里提交的内容

2)接口层面
get 和 post 都是基于 http 协议的,底层依赖 tcp/ip 协议,从 get 和 post 来看,没有区别,但是大家在使用具体场景下是有区别,一般目前接口都是基于 REST 接口,其有自己的规范和风格
a.get 请求一般传输的数据在 url 中,post 在 body 中;
b.get 请求相对来说不安全,post 相对安全,实际上两者传输都不安全,如果想让更安全,可以使用 https 协议或是其他加密方式
c.get 能发送的数据量少,post 数据在 body 中传输数据量大;
d.get url 地址中编码格式 ascii 码格式,post 是支持任何编码格式;
e.get 发送一次请求,post 发送两次请求:第一次发送 headers 响应 100 后,再发送第二次请求 data,响应 200
对于网络来说,一次请求和两次请求来说,一般不会有感觉的;

最佳回复

get 幂等,post 非幂等

共收到 7 条回复 时间 点赞

e.get 发送一次请求,post 发送两次请求:第一次发送 headers 响应 100 后,再发送第二次请求 data,响应 200
对于网络来说,一次请求和两次请求来说,一般不会有感觉的;

抓包的话好像并不能抓到 post 有发送两次请求

Mango 回复

说的是 tcp

get 幂等,post 非幂等

之前看到一篇讲得挺详细的,搬运一下:https://testerhome.com/topics/25530

在实际工作中,主要区别还是 get 是读场景,post 大多是写场景,当然也不绝对,也有见过不管三七二十一全部都是 post 的系统。

如果只是问 post 跟 get 的区别是啥,意义其实不大;
两者完全可以换着用,参数一个放 body,一个放在 url 中而已。
现在的接口都是 Restful api 风格。
get---获取---R
post-修改----U
delete--删除---D
put---添加---C
对应数据的 CRUD

post 和 put 是不是反了?我了解的是 post 对应 create ,put 对应 update 。

不过也没啥好纠结的,实际用只要前后端约定好就行。

陈恒捷 回复

记反了,也是写反了😂

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册