当我们想到HTTP中的POST和GET的区别时,无疑都会想到一下几点:
- GET请求方式将请求信息直接加在URL以?隔开的后面,而POST请求方式将请求信息加在消息主体中。
- GET有长度限制,POST没有长度限制。
- GET会将访问页面进行缓存,而POST不会进行缓存。
- GET在浏览器中回退是无害的,而POST回退时需要再次请求。
- GET请求只能接受URL格式编码,而POST能够适应各种编码。
- 从数据库层面上来看,GET请求符合幂等性和安全性,因为GET的请求只做请求查询操作,因此不会对原有数据进行修改,而POST可能会对原有数据进行修改,所以不符合幂等性和安全性。
当说到以上几点时,看着已经说了很多GET和POST的区别了,其实不然,上述对GET和POST的区别的理解还是很浅。我们在学知识时,不仅要知其然,并且要知其所以然,那么下面来八一八其更深层次的意义。
1、其实不是GET和POST本身有自身限定,其实给GET在URL中加上Body和给POST直接在URL加上请求信息是都可以行的通的方式,那么为什么就不这样做呢?
因为HTTP协议为了将资源的最大化利用起来,所以给各自的请求方式设定好了服务类型,就像我们生活中的汽车,有小轿车,也有大货车,小轿车可以拉货,只要你给车上能塞多少,加高多少就能拉多少,但这样的效率就会太低。
2、在我们想到HTTP协议时,首先想到的是HTTP是基于TCP/IP协议的,就HTTP协议而言是一个应用层协议,所以不管是GET还是POST的方法都用的是TCP协议ÿ