正确理解get和post

什么是 HTTP?

超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。
HTTP 的工作方式是客户机与服务器之间的请求-应答协议。
web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。
举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。

URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。
GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的

所谓安全的意味着该操作用于获取信息而非修改信息。
换句话说,GET 请求一般不应产生副作用。
就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。
幂等(idempotent、idempotence)是一个数学或计算机学概念,常见于抽象代数中。
幂等有一下几种定义:
  对于单目运算,如果一个运算对于在范围内的所有的一个
数多次进行该运算所得的结果和进行一次该运算所得的结果是
一样的那么我们就称该运算是幂等的。比如绝对值运算就是一
个例子,在实数集中,有abs(a)=abs(abs(a))。
    对于双目运算,则要求当参与运算的两个值是等值的情况下,
如果满足运算结果与参与运算的两个值相等,则称该运算幂等,
如求两个数的最大值的函数,有在在实数集中幂等,即max(x,x) = x。

根据HTTP规范,POST表示可能修改变服务器上的资源的请求

两种 HTTP 请求方法:GET 和 POST

在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。
GET - 从指定的资源请求数据。
POST - 向指定的资源提交要被处理的数据

GET 方法

请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:
1.GET 请求可被缓存
2.GET 请求保留在浏览器历史记录中
3.GET 请求可被收藏为书签
4.GET 请求不应在处理敏感数据时使用
5.GET 请求有长度限制
6.GET 请求只应当用于取回数据

POST 方法

请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:
1.POST 请求不会被缓存
2.POST 请求不会保留在浏览器历史记录中
3.POST 不能被收藏为书签
4.POST 请求对数据长度没有要求

比较 GET 与 POST

image.png

其他的请求方法

image.png

需要注意的问题

1.很多人贪方便,更新资源时用了GET,因为用POST必须要到FORM(表单),这样会麻烦一点。
2.对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE。
3.另外一个是,早期的Web MVC框架设计者们并没有有意识地将URL当作抽象的资源来看待和设计,所以导致一个比较严重的问题是传统的Web MVC框架基本上都只支持GET和POST两种HTTP方法,而不支持PUT和DELETE方法。

你可能感兴趣的:(正确理解get和post)