GET PUT POST的含义(Http)

上传人:碎****木 文档编号:220863110 上传时间:2021-12-09 格式:DOCX 页数:3 大小:12.88KB
返回 下载 相关 举报
GET PUT POST的含义(Http)_第1页
第1页 / 共3页
GET PUT POST的含义(Http)_第2页
第2页 / 共3页
GET PUT POST的含义(Http)_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《GET PUT POST的含义(Http)》由会员分享,可在线阅读,更多相关《GET PUT POST的含义(Http)(3页珍藏版)》请在金锄头文库上搜索。

1、GET PUT POST 的含义 POST/articles创立DELETE /articles/123 删除PUT/articles/123 更新或创立GET/articles/123 查看顺便说说几个学问点:GET 操作是平安的。所谓平安是指不管进展多少次操作,资源的状态都不会转变。比方我用 GET 扫瞄文章,不管扫瞄多少次,那篇文章还在那,没有变化。固然,你可能说每扫瞄一次文章,文 章的扫瞄数就加一,这不也转变了资源的状态么?这并不冲突,由于这个转变不是 GET 操作引起的,而是用户自己设定的效劳端规律造成的。PUT,DELETE 操作是幂等的。所谓幂等是指不管进展多少次操作,结果都一样

2、。比方我用 PUT 修改一篇文章,然后在做同样的操作,每次操作后的结果并没有不同,DELETE 也是一样。顺便说一句,由于 GET 操作是平安的,所以它自然也是幂等的。POST 操作既不是平安的,也不是幂等的,比方常见的 POST 重复加载问题:当我们屡次发出同样的 POST 恳求后,其结果是创立出了假设干的资源。平安和幂等的意义在于:当操作没有到达预期的目标时,我们可以不停的重试,而不会对资源产 生副作用。从这个意义上说,POST 操作往往是有害的,但很多时候我们还是不得不使用它。还有一点需要留意的就是,创立操作可以使用 POST,也可以使用PUT,区分在于POST 是作用在一个集合资源之上

3、的/articles,而 PUT 操作是作用在一个具体资源之上的/articles/123, 再通俗点说,假设 URL 可以在客户端确定,那么就使用 PUT,假设是在效劳端确定,那么就使 用 POST,比方说很多资源使用数据库自增主键作为标识信息,而创立的资源的标识信息到底是什么只能由效劳端供给,这个时候就必需使用 POST。关于 GET POST 的混淆先说一样点,只有了解了一样点之后才能理解为什么会发生混淆。两者都能向效劳器发送数据,提交的“内容”注 1的格式一样,都是var_1=value_1&var_2=value_2&.get 和 post 区分如字面,一个是 get猎取,一个是 p

4、ost发送。get 用来告知效劳器需要猎取哪些内容uri+query,向静态页面uri恳求那么直接返回文件内容给扫瞄器,向一个动态页面恳求时可以供给查询参数 query以获得相应内容。post 用来向效劳器提交内容,主要是为了提交,而不是为了恳求内容,就是说 post 的初衷并不要求效劳器返回内容注 2,只是提交内容让效劳器处理主要是存储或者处理之后再存储。get 和 post 消灭混淆是由于对提交的数据处理方法的滥用造成的,数据是无辜的。混淆之一:将 get 提交的用来查询的字段当作是存储数据存入了效劳器端文件或者数据库。然后就误以为get 是用来提交用于存储的数据的。混淆之二:编写脚本在效

5、劳器端通过处理 post 提交的数据并返回内容。只要有数据,就能用来进展推断, 脚本怎写是程序员的事,而不在乎数据来源的形式 post、get,或者是自己预设值的常量。这点功能上确实没问题,只是背离的其初始目的而已。由于都是要传送数据,且数据格式一样即使数据格式不同,只要能提取出相应数据。使用的 时候难免消灭张冠李戴,将 get 数据用来存储、将 post 数据用来检索返回数据。但是二者还是有区分的主要是依据其用途而“人为”注 3造成的,get 的长度限制在 2048 字节由扫瞄器和效劳器限制的,这是目前 IE 的数据,曾经是 1024 字节,很大程度上限制了 get 用来传递“存储数据”的数

6、据的力量,所以还是老狡猾有用来做检索吧; post 那么无此限制只是 协议标准没有进展大小限制,但受限于效劳器的处理力量,因此对于大的数据一般来说需要存储的数据可能会比较大,比 2048 字节大的传递有自然的优势,谁让它是 nature born post 呢。get 提交的数据是放在 url 里,目的是机敏的向效劳其提交检索恳求,可以在地址栏随时修改数据以变更需要猎取的内容,比方直接修改分页的编号就跳到另外一个分页了固然也可能是404。post 提交的数据放在 恳求的正文里,目的在于提交数据并用于效劳器端的存储, 而不允许用户过多的更改相应数据主要是相对于在 url 修改要麻烦很多,url

7、的修改只要点击地址栏输入字符就可以了,除非是特地跑来编辑数据的。花边:post 和 get 的平安性在传输的层面上区分不大,但是承受 url 提交数据的 get 方式简洁被人肉眼看到,或者消灭在历史纪录里,还是可能被肉眼看到,都是一些本地的问题。注 1:我强调的是内容,至于 协议中的 get 和 post 的格式大家有爱好就自己看看吧。注 2:get 方式主要是为了获得预期内容,即 uri+query 一样时所得到的内容应当是一样的。而post 主要是提交内容,至于是否有必要返回页面可能只是出于用户体验,比方注册时返回你的注册 id,但是假设只是返回一个“您已注册成功”的一样页面即使你 post 的数据不一样也没什么好惊异的。注 3:关于这个“人为”,不是那么贴切,get 和 post 还是有技术层面的区分的。但是从表象上看暂且这么说吧,到底二者的混淆也是“人为”的。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号