GET和POST的基本对比

2020-04-07 16:25发布

不管是哪一种请求方式,客户端都可以把信息传递给服务器,服务器也可以把信息返回给客户端,只不过GET方式偏向于拿,听上去更多的是获取,属于给的少拿的多,而POST偏向于给,传递嘛,属于给的多拿的少。

 

先介绍一些其他的方法:

  ·HEAD:只获取响应头的信息,不获取响应主体内容;

  ·DELETE:删除,一般代指删除服务器上指定的文件;

  ·OPTIONS:试探性请求,在CORS跨域请求中,所以正常请求发送前,先发送一个试探请求,验证是否可以和服务器正常的建立连接;

  ·PUT:新增,一般代指向服务器中新增文件。

 

从传递给服务器的方式看:

  ·GET:基于请求头传递给服务器,比如想把本地的Cookie信息传递给服务器;

      主要方式:请求URL地址后面的问号传参,比如 'index.html?id=1010&name=xx' ;

  ·POST:基于请求头传递给服务器;

      主要方式:基于请求主体,把信息传递给服务器,比如form表单。

 

其他一些对比:

  1. GET请求传递给服务器的信息有大小的限制,因为它是基于地址问号传参方式传递信息,而URL有长度的限制,而POST请求理论上是没有大小限制的,但是实际操作中也都会给予限制;

  2. GET请求相对POST请求来说不太安全,也是因为传参是基于地址栏问号传参,会被别人基于URL劫持的方式把信息获取到,所以真实项目中,涉及到安全的信息都是基于POST方式传递的,当然,互联网是没有绝对安全的,所以我们需要做很多安全性的处理;

  3. GET请求容易产生缓存,原因还是因为GET是基于问号传参传递信息的,浏览器在每一次获取数据后,一般会缓存一下数据,下一次如果请求的地址和参数和上一次一样,浏览器直接获取缓存中的数据,所以我们基于GET发送请求,需要清除缓存的时候,一般都会在地址栏中添加一个随机数,比如 'index.html?id=1010&name=xx'+Math.random()。