> 文章列表 > get和post的本质区别

get和post的本质区别

get和post的本质区别

get和post的本质区别?

做过web开发的应该都知道,开发中两种最常用的HTTP 方法是:GET 和 POST。get请求参数放在url,post请求放在请求体里面,关于他们的细节和主要的点,你了解多少,今天我们就来看看。

✏️我们先看一下官方的回答

1、post请求更安全;post请求不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中,get请求的是静态资源,则会缓存,如果是数据,则不会缓存。

2、post请求发送的数据更大,get请求有url长度限制。

3、post请求能发送更多的数据类型,get请求只能发送ASCII字符。

4、传参方式不同。(get请求参数通过url传递,post请求放在request body中传递)

5、get产生一个TCP数据包;post产生两个。

✏️深入了解

什么是http?

HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议

HTTP的底层是TCP/IP,所以get和post底层也是TCP/IP

TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。像是用来传递数据的快递车,那http就相当于快递公司,你可以把快递放在快递车的任何地方,车顶(请求头)还是车内(body),装多少(大小限制),其实是快递公司(http)决定的。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

总结:

get请求:从指定的资源请求数据,用于获取数据,一般用于搜索排序和筛选之类的操作。

post请求:向指定的资源提交要被处理的数据,用于将数据发送给服务器,一般用于修改和写入数据。

get请求和post请求本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。