get 和 post 的区别
# 二者都是 http 请求
- 发送的数据数量
get中,只可以发送有限数量的数据,因为数据是在URL中发送的.
post中,可以发送大量数据,因为数据是在正主题中(请求头)发送的.
我们经常说get请求参数的大小存在限制,而 post 请求的参数大小是无限制的。
实际HTTP协议从未规定GET/POST的请求长度限制是多少。
对get请求参数的限制是来源与浏览器或web服务器,
1.HTTP 协议未规定 GET 和 POST 的长度限制
2.GET 的最大长度显示是因为浏览器和 web 服务器限制了 URI 的长度
3.不同的浏览器和 WEB 服务器,限制的最大长度不一样
4.要支持 IE,则最大长度为 2083byte,若只支持 Chrome,则最大长度 8182byte
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- 安全性
get方法 发送的数据不受保护,因为数据在URl栏中公开,无疑增加漏洞和黑客攻击的风险.
post方法 发送的数据是安全的,因为数据未在URl栏公开,还可以在其中使用多种编码技术,灵活具有弹性.
1
2
2
- 加入书签中
get查询的结果可以加入到书签中,因为它以URl的形式存在,而post查询的结果无法加入书签中.
1
- 编码
在表单中使用get方法时,数据类型中只接受ASCII字符.
在表单提交时, post方法不绑定数据类型,并准许二进制和ASCII字符.
1
2
2
- 5.可变大小
get 方法中的可变大小约为 2000个字符.
post 方法最多准许8mb的可变大小.
1
2
2
- 缓存
get 方法的数据可以缓存
post 方法的数据无法缓存
get 请求类似于查找的过程,用户获取数据,可以不用每次都与数据库连接,所以可以使用缓存。
post 不同,post 做的一般是修改和删除的工作,所以必须与数据库交互,所以不能使用缓存。
因此 get 请求适合于请求缓存。
缓存一般只适用于那些不会更新服务端数据的请求。
一般 get 请求都是查找请求,不会对服务器资源数据造成修改,
而 post 请求一般都会对服务器数据造成修改,
所以,一般会对 get 请求进行缓存,很少会对 post 请求进行缓存。
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
- 主要作用
get 方法要用于获取信息 即常用来用户查询信息,明文不能用于机密信息提交.
post 方法主要用于更新数据 即常用表单提交,甚至可以传输文件,没有传输限制,安全
1
2
2
最近更新时间: 2021/06/17 10:13:36
- 01
- 2023/07/03 00:00:00
- 02
- 2023/04/22 00:00:00
- 03
- 2023/02/16 00:00:00