HTTP中get和post的区别

本文详细探讨了HTTP请求中GET与POST的区别,包括安全性、数据长度及类型限制等,并介绍了RESTful架构风格中的相关规定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于Http中的get请求和post请求的区别,网络上口径不一

有的人认为他们是有本质区别的

有的人又认为他们是没有本质区别

我想大概是因为站在的角度不一样,所以考虑的问题也不一样

网络上认为二者有区别,那么区别又是怎样的呢?具体入下图所示:

get和post的区别
 GetPost
后退/刷新无害数据会被重新提交(浏览器应该告知用户数据会被重新提交)
收藏为书签可以不可以
能否被缓存可以不可以
编码类型application/x-www-form-urlencoded

①application/x-www-form-urlencoded

②multipart/form-data

历史记录参数可以保存在浏览的历史中参数不会保存在浏览器的历史中
数据长度限制

url的长度最大为2048个字符

(get请求利用url上拼接数据的形式)

不受限制

(post请求利用请求体中添加数据的形式)

数据类型限制只允许ASCII字符没有限制
安全性

安全性差

相比而言较安全
可见性数据在url中对所有人可见数据不会显示在url中,也不会保存在浏览器历史中

使得大家都认为二者有上面区别的根本原因在于RFC这个东西

那么什么是RFC呢?上图

官方语言扯了一大堆,读了之后还是懵懂!

其实就是某团体开发出了一套标准或提出对某种标准的设想,想要征询外界的意见时,就会在Internet上发放一份RFC.

而对此感兴趣的人可以阅读该RFC并提出自己的意见.

所以说RFC就是现行的Internet的规范标准

按照正常逻辑上来讲,get请求可以包含请求体,pos请求也可以在url中拼接数据参数

但是RFC规范中不允许这样做,但不代表一定不能这样做.

RFC中有如下这样一段话

 实际开发中又没有完全的不允许使用GET区完成增删改操作

另外

RESTful架构风格中有一个特点是"同一接口",其中做了如下规定:

  1. GET(SELECT):从服务器取出资源
  2. POST(CREATE):在服务器新建一个资源
  3. PUT(UPDATE):在服务器更新资源。
  4. PATCH(UPDATE):在服务器更新资源
  5. DELETE(DELETE):从服务器删除资源

总结:关于二者的区别由上面可见一斑,面试时候要怎么讲,就取决于面试官想听什么了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值