前言
相信很多小伙伴在面试的过程中,这道面试题是必不可少的,那就是GET和POST的区别?接触过开发的人肯定能说出来个一二,GET和POST作为HTTP协议中最常见的两种请求方法,这两种方法将区别于应用场景,那么接下来小编将描述两者之间的差别
GET 方法
-
GET 方法用于从服务器获取(即“读取”)数据。当使用 GET 方法时,请求参数将以查询字符串的形式发送到服务器。查询字符串是 URL 的一部分,通常使用 "?" 符号分隔 URL 和查询字符串。例如,以下是一个 GET 方法的 URL: xxx.com?book?id=123
其中,"?id=123" 是查询字符串,它告诉服务器要获取 ID 为 123 的书。所以GET请求不应在处理敏感数据时使用
POST方法
- POST 方法用于向服务器提交(即“写入”)数据。当使用 POST 方法时,请求参数将以请求主体的形式发送到服务器。因此,POST 方法比 GET 方法更安全,因为请求参数不会在 URL 中明文显示。
GET 和 POST 区别
- GET请求一般是获取数据, POST请求一般是提交数据
- GET请求可被缓存,POST请求不会被缓存
- GET请求保留在浏览器历史记录中,POST请求不会保留在浏览器历史记录中
- GET请求可被收藏为书签,POST 不能被收藏为书签
- GET传输的数据量小,这主要是因为受 URL长度限制,所以对长度有要求,POST 请求对数据长度没有要求,所以上传文件通常用POST
- GET请求浏览器回退时是无害的,POST请求则会再次提交
- GET请求只支持URL编码, POST请求支持多种编码
- GET请求产生一个TCP数据包;POST请求产生两个TCP数据包。
- 下面通过GET和POST区别的表格更清晰明了
总结
- GET 和 POST 方法都是 HTTP 协议中的常见请求方法,其实,在本质上是一样的,都是客户端与服务端的数据请求方式,但根据他们的特性,应用场景和处理方式不同,get和post就有了区别。通常情况下,GET 方法用于读取数据,POST 方法用于写入数据。如果需要传输大量的数据或保护数据安全,建议使用 POST 方法。