美文网首页
正确理解get和post

正确理解get和post

作者: 程序萌 | 来源:发表于2018-05-18 15:31 被阅读0次

什么是 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

    什么是 HTTP? 超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。HTTP 的工作方式是客户...

  • iOS请求方法和网络安全

    GET和POST请求 GET和POST请求简介 GET请求模拟登陆 POST请求模拟登陆 GET和POST的对比 ...

  • iOS请求方法和网络安全

    GET和POST请求GET和POST请求简介GET请求模拟登陆POST请求模拟登陆GET和POST的对比保存用户信...

  • HTTP

    get和post请求的区别 GET参数通过URL传递,POST放在Request body中。GET比POST更不...

  • post And get

    post And get post 与 get 请求的区别: 相同点:post和get都属于tcp协议传输。 po...

  • http协议,tcp/udp汇总

    GET和POST请求方式的区别? get获取数据,post发送数据 get拼接URL后面,post参数放在body...

  • API Test-基础知识

    1、接口测试的类型:get/post/delete/put 2、post和get的区别: a、get参数写在...

  • HTTP post和get请求的实现

    本文使用HttpClient包实现了HTTP的post和get请求。 · POST · GET

  • ajax 请求的时候 get 和 post 方式的区别?

    get和post的区别 get请求不安全,post安全 get请求数据有限制,post无限制 get请求参数会在u...

  • 实现异步请求的方法

    原生ajax写法: 请求方式:get,post,head,delete,get和post的区别 get将请求的参数...

网友评论

      本文标题:正确理解get和post

      本文链接:https://www.haomeiwen.com/subject/ugygdftx.html