欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

GET和POST的基本对比

程序员文章站 2022-03-26 22:26:00
不管是哪一种请求方式,客户端都可以把信息传递给服务器,服务器也可以把信息返回给客户端,只不过GET方式偏向于拿,听上去更多的是获取,属于给的少拿的多,而POST偏向于给,传递嘛,属于给的多拿的少。 先介绍一些其他的方法: ·HEAD:只获取响应头的信息,不获取响应主体内容; ·DELETE:删除,一 ......

不管是哪一种请求方式,客户端都可以把信息传递给服务器,服务器也可以把信息返回给客户端,只不过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()。
 
  以上介绍的只是一些简单的我们项目中真正会用到的东西,至于很多更细的对比、理论层面的东西,或是所谓get和post到底没有有区别等,这里就不多介绍了。