下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 3/3http协议及post与get操作 竭诚为您提供优质文档/双击可除http协议及post与get操作 篇一:http协议中post与get本质区别详解 一原理区别 一般在浏览器中输入网址访问资源都是通过get方式;在FoRm提交中,可以通过method指定提交方式为get或者post,默认为get提交 http定义了与服务器交互的不同方法,最基本的方法有4种,分别是get,post,put,delete uRl全称是资源描述符,我们可以这样认为:一个uRl 地址,它用于描述一个网络上的资源,而http中的get,post,put,delete就对应着对这个资源的查,改,增,删4个操作。
2、到这里,大家应该有个大概的了解了,get一般用于获取/查询资源信息,而post一般用于更新资源信息(个人认为这是get和post的本质区别,也是协议设计者的本意,其它区别都是具体表现形式的差异)。 根据http规范,get用于信息获取,而且应该是安全的和幂等的。 1.所谓安全的意味着该操作用于获取信息而非修改信 息。换句话说,get请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。 *注意:这里安全的含义仅仅是指是非修改信息。 2.幂等的意味着对同一uRl的多个请求应该返回同样的结果。这里我再解释一下幂等这个概念: 幂等(idem
3、potent、idempotence)是一个数学或计算机学概念,常见于抽象代数中。幂等有以下几种定义:对于单目运算,如果一个运算对于在范围内的所有的一个数多次进行该运算所得的结果和进行一次该运算所得的 结果是一样的,那么我们就称该运算是幂等的。比如绝对值运算就是一个例子,在实数集中,有abs(a)=abs(abs(a)。 对于双目运算,则要求当参与运算的两个值是等值的情况下,如果满足运算结果与参与运算的两个值相等,则称该运算幂等,如求两个数的最大值的函数,有在在实数集中幂等,即max(x,x)=x。 看完上述解释后,应该可以理解get幂等的含义了。 但在实际应用中,以上2条规定并没有这么严格。
4、引用别人文章的例子:比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。从根本上说,如果目标是当用户打开一个链接时,他可以确信从自身的角度 来看没有改变资源即可。 根据http规范,post表示可能修改变服务器上的资源的请求。继续引用上面的例子:还是新闻以网站为例,读者对新闻发表自己的评论应该通过post实现,因为在评论提交后站点的资源已经不同了,或者说资源被修改了。 上面大概说了一下http规范中,get和post的一些原理性的问题。但在实际的做的时候,很多人却没有按照http 规范去做,导致这个问题的原因有很多,比如
5、说: 1.很多人贪方便,更新资源时用了get,因为用post必须要到FoRm(表单),这样会麻烦一点。 2.对资源的增,删,改,查操作,其实都可以通过 get/post完成,不需要用到put和delete。 3.另外一个是,早期的但是webmVc框架设计者们并没有有意识地将uRl当作抽象的资源来看待和设计。还有一个较为严重的问题是传统的webmVc框架基本上都只支持get 和post两种http方法,而不支持put和delete方法。 *简单解释一下mVc:mVc本来是存在于desktop程序中的,m是指数据模型,V是指用户界面,c则是控制器。使用mVc的目的是将m和V的实现代码分离,从而使同
6、一个程序可以使用不同的表现形式。 以上3点典型地描述了老一套的风格(没有严格遵守http规范),随着架构的发展,现在出现 Rest(Representationalstatetransfer),一套支持http规范的新风格,这里不多说了,可以参考Restfulwebservices。 二表现形式区别 搞清了两者的原理区别,我们再来看一下他们实际应用中的区别: 为了理解两者在传输过程中的不同,我们先看一下http 协议的格式: http请求: 在http请求中,第一行必须是一个请求行(requestline),用来说明请求类型、要访问的资源以及使用的http版本。紧接着是一个首部(header)
7、小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以添加任意的其他数据称之为主体(body)。 get与post方法实例: get/books/sex=manu;windowsnt5.1;en-us;rv:1.7.6) gecko/20 xx0225Firefox/1.0.1 connection:keep-alive post/http/1.1 host: user-agent:mozilla/5.0(windows;u;windowsnt5.1;en-us ;rv:1.7.6) gecko/20 xx0225Firefox/1.0.1 content-type:application/x-form-urlencoded content-length:40 connection:keep-alive (此处空一行) name=professional%20ajaxcharset=iso-8859-1 content-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47360-2026机车车辆悬挂减振装置橡胶弹性元件
- 2026年消防设施操作员心理素质培训
- 2026年保健品功能知识与搭配销售
- 2026年幼儿园秋季幼儿户外写生活动
- 2026年软件公司年度新技术与项目开发培训计划
- 2025河南省周口市鹿邑县结业考试生物试题(解析版)
- 2026年绿化垃圾处理厂选址要求
- 2026年法律咨询O2O线上线下融合的预约与面谈服务
- 2026年医药电商药品仓储配送管理制度与消费者保护
- 2026年洪涝灾区环境消毒与饮水卫生培训
- 【MOOC】中医藏象理论与临床-西南医科大学 中国大学慕课MOOC答案
- 2024年初级碳排放管理员理论考试(重点)题库及答案
- 渗透检测专业知识考试题库(含答案)
- 第十章概率章末复习教学设计 高一下学期数学人教A版(2019)必修第二册
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- (高清版)TDT 1075-2023 光伏发电站工程项目用地控制指标
- 水电费用分摊方式
- 常见的量资料课件
- 中医养生中心加盟商务手册
- 变配电运行值班员(二级)技术师资格考试复习题库大全-上(单选题部分)
- 2023版思想道德与法治专题4 继承优良传统 弘扬中国精神 第2讲 做新时代的忠诚爱国者
评论
0/150
提交评论