您的位置:首页 > 理论基础 > 计算机网络

[http]get post put delete 简介

2017-09-11 11:52 393 查看
最近在写一个前后端接口规范,所以就从0开始研究吧,咱们就从基础开始

为什么这么多请求方法

在现实生活中,路上跑的全是汽车,如果这些汽车都是随意行驶,可能120急救车就被前面大货车给拦截在路上了,整个交通系统都会处于瘫痪状态,所以红绿灯出现了(虽然我大帝都有红绿灯也堵车)


请求方法

GET

当执行GET请求的时候,要给汽车贴上GET的标签(设置method为GET),而且要求把传送的数据放在车顶上(url中)以方便记录。get方式仅仅是查询,就像查询数据库一样,向特定资源发出请求,获取某个内容,不会修改,不会影响数据库的内容.
这里提到一个幂等性的概念.同一个url多次请求返回的结果是完全相同的.
(附: 幂等定义:对于单目运算,如果一个运算对于在范围内的所有的一个数多次进行该运算所得的结果和进行一次该运算所得的结果是一样的,那么我们就称该运算是幂等的。比如绝对值运算就是一个例子,在实数集中,有  abs(a)=abs(abs(a))。 对于双目运算,则要求当参与运算的两个值是等值的情况下,如果满足运算结果与参与运算的两个值相等,则称该运算幂等,如求两个数的最大值的函数,有在在实数集中幂等,即max(x,x) = x。)


  

POST

如果是POST请求,就要在车上贴上POST的标签,并把货物放在车厢(实体)里。当然,你也可以在GET的时候往车厢(实体)内偷偷藏点货物,但是这是很不光彩;也可以在POST的时候在车顶上也放一些数据,让人觉得傻乎乎的。
向指定资源提交某种数据请求.可能会创建或者修改原有数据
状态码
200 (OK) - 成功
204 (No Content) - 没有内容
303 - 响应能被用户代理利用去获得可缓存的响应。
201 - 已创建


PUT

与post很相似,但是put指定了资源的存放位置,post由服务器自己决定.对创建资源来说,post不是幂等的,put是幂等的,类似于数据update操作
状态码:
201  - 已创建
200  - Ok
204  - 无内容
501  - 没有被实现


delete

指定客户端想让服务器删除某个资源,按url删除指定资源,就像是数据库delete操作
delete请求一般返回3种状态码:
200 (OK) - 删除成功,同时返回已经删除的资源
202 (Accepted) - 删除请求已经接受,但没有被立即执行(资源也许已经被转移到了待删除区域)
204 (No Content) - 删除请求已经被执行,但是没有返回资源(也许是请求删除不存在的资源造成的)


参数大小限制

GET请求在URL中传送的参数是有长度限制的,而POST么有。 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。ah ,is really?
实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。
数据量大了,对于浏览器还是服务器来说,都是负担.不同些浏览器对url的长度大小有一定的字符限制,由于get方式放在url的首部中,所以就会受影响.post方式则是把内容方在报文内容中,只要报文没限制,大小就不受影响.起限制作用的是服务器的处理程序的处理能力。


安全性

get和post之间:

在进行登录操作,通过GET请求,用户名和密码都会暴露再URL上,因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: