文档库 最新最全的文档下载
当前位置:文档库 › 浅谈HTTP中Get与Post的区别

浅谈HTTP中Get与Post的区别

浅谈HTTP中Get与Post的区别
浅谈HTTP中Get与Post的区别

浅谈HTTP中Get与Post的区别

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DE LETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST 一般用于更新资源信息。

从HTTP原理角度看:

1.根据HTTP规范,GET用于获取服务器上的资源,而且应该是安全的和幂等的。(1).所谓安全的意味着该操作用于获取信息而非修改信息。

换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。

* 注意:这里安全的含义仅仅是指是非修改信息。

(2).幂等的意味着对同一URL的多个请求应该返回同样的结果。

这里我再解释一下幂等这个概念:

幂等(idempotent、idempotence)是一个数学或计算机学概念,常见于抽象代数中。

幂等有一下几种定义:

对于单目运算,如果一个运算对于在范围内的所有的一个数多次进行该运算所得的结果和进行一次该运算所得的结果是一样的,那么我们就称该运算是幂等的。比如绝对值运算就是一个例子,在实数集中,有abs(a)=abs(abs(a))。

对于双目运算,则要求当参与运算的两个值是等值的情况下,如果满足运算结果与参与运算的两个值相等,则称该运算幂等,如求两个数的最大值的函数,有在在实数集中幂等,即m ax(x,x) = x。

看完上述解释后,应该可以理解GET幂等的含义了。

但在实际应用中,以上2条规定并没有这么严格。引用别人文章的例子:比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。从根本上说,如果目标是当用户打开一个链接时,他可以确信从自身的角度来看没有改变资源即可。

2.根据HTTP规范,POST表示可能修改服务器上的资源。

继续引用上面的例子:还是新闻以网站为例,读者对新闻发表自己的评论应该通过POST 实现,因为在评论提交后站点的资源已经不同了,或者说资源被修改了。

从表面现象上看:

1.请求参数的传递方式:

GET将表单的数据会附在URL之后,值和表单内各个字段对应。在URL中可以看到。

以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=id ontknow&verify=%E4%BD%A0%E5%A5%BD。

如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

POST是通过HTTP POST机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

2.提交数据的长度:

GET方式提交的数据最多只能是1024字节; POST理论上没有限制,IIS4中最大为80KB,I IS5中为100KB。

以上这句是我从其他文章转过来的,其实这样说是错误的,不准确的:

(1).首先是“GET方式提交的数据最多只能是1024字节”,因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Nets cape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。

* 注意:这是限制是整个URL长度,而不仅仅是你的参数值数据长度。

(2).理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,说“POST数据量存在80K/100K的大小限制”是不准确的,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。

对于ASP程序,Request对象处理每个表单域时存在100K的数据长度限制。但如果使用R equest.BinaryRead则没有这个限制。

由这个延伸出去,对于IIS 6.0,微软出于安全考虑,加大了限制。我们还需要注意:

1).IIS 6.0默认ASP POST数据量最大为200KB,每个表单域限制是100KB。

2).IIS 6.0默认上传文件的最大大小是4MB。

3).IIS 6.0默认最大请求头是16KB。

IIS 6.0之前没有这些限制。

所以上面的80K,100K可能只是默认值而已(注:关于IIS4和IIS5的参数,我还没有确认),但肯定是可以自己设置的。由于每个版本的IIS对这些参数的默认值都不一样,具体请参考相关的IIS配置文档。

3. 服务端获取参数的方式:

在ASP中,服务端获取GET请求参数用Request.QueryString,获取POST请求参数用Requ est.Form。

在JSP中,用request.getParameter(\"XXXX\")来获取,虽然jsp中也有request.getQue ryString()方法,但使用起来比较麻烦,比如:传一个test.jsp?name=hyddd&password=hy ddd,用request.getQueryString()得到的是:name=hyddd&password=hyddd。

在PHP中,可以用$_GET和$_POST分别获取GET和POST中的数据,而$_REQUEST则可以获取GET和POST两种请求中的数据。

* 注意:JSP中使用request和PHP中使用$_REQUEST都会有隐患,这个下次再写个文章总结。

4. 安全性:

POST的安全性要比GET的安全性高,但是Get执行效率却比Post方法好。

比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。

* 注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义。

5. 在FORM中,Method默认为GET:

在FORM(表单)中,Method默认为"GET"。

一个常见问题

注意到表单中action:getPostServlet/getPost.do?param4=param4

这个action带有一个参数param4,

如果用get方法提交,后台无法接收到这个参数;

如果用post方法提交,后台就可以接收到这个参数。

问题原因的简单解释:

用get方法提交的url显示如下:

http://localhost/mywebapp/getPostServlet/getPost.do?pram1=param1&pram2=param2&pram3=pa ram3&button1=submit

也就是说method为get时action自己后边带的参数列表会被忽视,后台无法接收到这个参数,只能得到表单中的参数;

用post方法提交的url显示如下:

http://localhost/mywebapp/getPostServlet/getPost.do?param4=param4

也就是说post方式提交表单,参数分为两部分:一部分是action中的参数放在地址栏;另一部分是表单中的参数放在请求的头中;所以所有的数据后台全部能获得。

对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。Request从几个集合取数据是有顺序的,从前到后的顺序依次是QueryString,Form,最后是ServerVariables。Request对象按照这样的顺序依次搜索这几个集合中的变量,如果有符合的就中止,后面的就不管了。

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个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息(个人认为这是GET和POST 的本质区别,也是协议设计者的本意,其它区别都是具体表现形式的差异 )。 根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。 1.所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。 * 注意:这里安全的含义仅仅是指是非修改信息。 2.幂等的意味着对同一URL的多个请求应该返回同样的结果。这里我再解释一下幂等这个概念: 幂等(idempotent、idempotence)是一个数学或计算机学概念,常见于抽象代数中。 幂等有以下几种定义: 对于单目运算,如果一个运算对于在范围内的所有的一个数多次进行该运算所得的结果和进行一次该运算所得的结果是一样的,那么我们就称该运算是幂等的。比如绝对值运算就是一个例子,在实数集中,有abs(a) = abs(abs(a)) 。 对于双目运算,则要求当参与运算的两个值是等值的情况下,如果满足运算结果与参与运算的两个值相等,则称该运算幂等,如求两个数的最大值的函数,有在在实数集中幂等,即max(x,x) = x 。 看完上述解释后,应该可以理解GET幂等的含义了。 但在实际应用中,以上2条规定并没有这么严格。引用别人文章的例子:比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。从根本上说,如果目标是当用户打开一个链接时,他可以确信从自身的角度来看没有改变资源即可。

现场处理措施和强措的区别

现场处理措施决定书: 1、现场处理措施决定书,是指安监部门在监督检查中,发现生产经营单位存在安全生产违法行为或者事故隐患的,依法作出现场处理决定而使用的文书。 2、制作说明 (1)使用范围:可以针对当场纠正、责令立即停止作业(施工)、责令立即停止使用、责令立即排除事故隐患、责令从危险区域撤出作业人员、责令暂时停产停业、停止建设、停止施工或者停止使用等多种决定使用。 (2)依据:现场处理措施是为预防、制止或者控制生产安全事故的发生,依法采取的对有关生产经营单位及其人员的财产和行为自由加以暂时性限制,使其保持一定状态的手段。作出现场处理决定,应当有法律法规规定,并在文书中列明所引用的条款。 (3)与其他文书的区别 一是与《责令限期整改指令书》的区别。《责令限期整改指令书》主要适用于责令限期整改、责令限期达到要求这两种情况。 二是与《强制措施决定书》的区别。《强制措施决定书》主要适用于查封、扣押和临时查封有关场所等行政强制措施。 三是责令暂时停产停业、停止建设、停止施工或者停止使用的期限届满或者依生产经营单位申请,安全监管部门应当进行复查,并制作《整改复查意见书》。 3、注意事项 文书要加盖安监部门公章,不得使用内设机构印章。送达由负责人在文书上签名并签署时间即可,其他人签收的,应有相应的职务证明或者同时加盖生产经营单位公章。 强制措施决定书 1、行政强制措施决定书,是行政执法机关为查明事实,保全证据而对当事人作出

强制性措施决定的文书。 本文书仅在依法实施采取查封、扣押、临时查封有关场所时使用。 2、制作说明 (1)存在的问题 该部分应当具体列明违反法律、法规、规章可以采取强制措施的情形。 (2)依据 该部分应当明确法律、法规、规章有关可以采取强制措施的条款,最好明确法律、法规、规章的名称、条、款、项。 (3)强制措施 该部分应当根据存在的问题,即违法的情形、情节以及严重程度,明确强制措施的种类。 3、注意事项 (1)对有根据认为不符合国家标准或行业标准的设施、设备、器材予以查封或扣押时,应当下发《强制措施决定书》。 (2)根据《易制毒化学品管理条例》(国务院令第445号)第三十二条第二款规定,行政主管部门在进行易制毒化学品监督检查时,可以依法查看现场、查阅和复制有关资料、记录有关情况、扣押有关的证据材料和违法物品;必要时,可以临时查封有关场所。 (3)符合《中华人民共和国安全生产法》第五十六条第一款第(四)项及相关法律法规规定的强制措施种类。

各种不同处理工艺比较

近几十年在国内外城市污水处理工程实践中,采用较多的城市污水处理工艺有传统活性污泥法,吸附再生法、分段进水法、AB法、A/O法、A/A/O法、SBR法、氧化沟法、一体化池(UNITANK)等等,而各种工艺中又有一些变化了和改进了新形态。几种不同污水处理工艺技术特点见表2。 以上列举的这些城市污水处理工艺,其核心设施—曝气池都是敞开的,一般在池底装有曝气器或者在池面装有曝气机,设施结构较为简单,便于检修和维护,其中:AB法由于采取了两次生化处理,工艺的单元构成较复杂,产生的污泥也不稳定,需要污泥处置设施对其进行稳定化处理和处置,管理环节多,建设投入比较多(1500~2000元/(m3/d)),污水处理单位成本也高(0.7~1.0元/m3)。但是,由于该工艺是针对高浓度城市污水处理而设计的,去除单位污染物的建设投入和运行消耗并不高,是一种特殊场合宜用的城市污水处理工艺。 传统活性污泥法、分段进水法、吸附再生法属于中等负荷的污水处理工艺,该工艺出水水质稳定且较好,运行管理比较简单,但是由于污泥不稳定,需要增加设施进行稳定化处理,增加了运行管理环节,加大了基建投入(1000~2000元/(m3/d)),但是污泥产生的沼气可用来发电或直接驱动鼓风机,使污水处理总能耗低(0.15~0.20 kWh/m3),运行成本低(0.25元/m3左右),由于其明显的经济性,特别是在大型城市污水处理项目建设中(>20万m3/d),是国内外广泛采用的城市污水处理工艺。 氧化沟、序批池(SBR)、一体化(UNITANK)都是属于低负荷污水处理工艺,出水

水质非常好。由于负荷低、一般不再设置初沉池,而二沉池也往往和曝气池组合为一;由于泥龄长、污泥较为稳定,一般可以不再作稳定化处理而直接处置或者应用,省去了污泥稳定化设施,大大简化了工艺构成,使运行管理非常简单,但是负荷低、泥龄长也使生化部分大大增加,增加了污水处理设施的建设投入,提高了能耗(0.28 kWh/m3左右),提高了运行消耗成本。这一类工艺还有一个特点是负荷变化范围宽,在需要的时候也可以按中等负荷运行,适应城市水污染治理的阶段需要。这一类工艺比较适合规模较小(<20万m3/d),技术力量较薄弱的中小城市的城市污水处理。 2/ 由于抗生素污水在处理上有相当的难度,处理装置投资大,技术比较复杂,运行费用也相当可观,为此,作一小结,期望能起到抛砖引玉之效果。1污水处理工程简介在建本污水处理工程前,在“七五”期间,该厂的6.6kg/a阿霉素工程曾建有一套60m3/d规模的污水处理装置,其处理方法为:臭氧氧化-生物接触氧化法。在实际运行中,装置好氧生化部分已无余量,臭氧氧化解毒处理部分还尚有每天处理能力十几m3污水的余量。由于该厂“八五”项目:500kg/a妥布霉素、10kg/a丝裂霉素、1 000kg/a阿佛菌素工程的相继建设,有关专家和省、地、市环保部门建议:在新厂区应综合规划,几个项目的污水进行集中统一治理。经与厂方反复研究,总结阿霉素工程污水处理的成功经验,决定利用阿霉素工程污水处理站的余量处理设施,再设计一套处理污水量为240m3/d,处理COD Cr进量为 2 500kg/d 的污水处理装置。 根据该厂生产工艺特点和水质情况,对于各股污水进行仔细分析和计算,为了使生化处理系统能顺利运行及降低基建投资,本设计采用如下预处理措施:(1)用臭氧氧化法预处理丝裂霉素污水,使抗生素的环状母体结构断裂。(2)用生物水解工艺预处理混合污水,使钢制厌氧反应器容积减少,以降低基建投资。[1] [2] [3] [4] [下一页] 2污水处理工艺流程丝裂霉素车间污水用泵送至已建的阿霉素污水处理站臭氧氧化塔处理,经处理的污水与妥布霉素等车间的污水一道自流入污水集水池,平均每月 1.2批,每批28t的发酵倒罐液由工艺物料泵送至设在集水池顶上的倒罐液贮存池,经自然沉淀的上清液慢慢加入污水集水池中,沉淀物用泵送到污泥浓缩塔,再经高速离心分离机处理,此泥饼可回收做复合饲料或作农肥,滤液返回到污水集水池,此池中的污水由潜污泵送到污水调节池。由于各车间的污水排放不均匀,所以潜污泵开停只得由集水池中的高低水位来控制(即高水位时开泵,低水位时停泵)。污水调节池容积设有1天之设计水量,以利于水质均化。污水调节池出水自流入本池下面的生物水解反应池,在此池中装有半软性组合填料,在厌氧菌的作用下,能将较复杂的有机物分解为小分子化合物。经生物水解反应池处理的污水,用污水泵均匀地将水送到旋流式浮腾厌氧反应器处理。厌氧反应器出水再自流到菌液分离池、预曝气池、生物接触氧化池及气浮净水器处理。为控制生物接触氧化池的进水浓度,从而保证处理的污水达标排放,本设计特设清下水集水池1座,用泵将清下水送往预曝气池。 为使厌氧反应器工作效率较佳和稳定,本设计在水解反应池的进口处设有蒸汽加温措施,温度自动控制在35±2℃,并还设有温度指示和报警装置。 生化处理的沉淀污泥和气浮净水器的浮渣均经高速离心机处理后运出作农肥。 厌氧处理所产生的沼气,根据有关资料计算,每天约1 025m3,本设计设有200m3气柜1台,经水封罐后,送到锅炉房作辅助燃料之用。3主要处理构筑物和设备设计参数 3.1生物水解反应池 为使池中有较高的厌氧微生物存在,以将进水中颗粒物质和胶体物质迅速截留和吸附,在此池中放置了半软性组合填料。污水停留时间为8h。 3.2旋流式浮腾厌氧反应器

浅谈HTTP中Get与Post的区别

两种最常用的 HTTP 方法是:GET 和 POST
什么是 HTTP?
超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信。 HTTP 的工作方式是客户机与服务器之间的请求-应答协议。 web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。 举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含 关于请求的状态信息以及可能被请求的内容。
两种 HTTP 请求方法:GET 和 POST
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。 ? GET - 从指定的资源请求数据。 ? POST - 向指定的资源提交要被处理的数据
GET 方法
请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:
/test/demo_form.asp?name1=value1&name2=value2
有关 GET 请求的其他一些注释:
? ? ? ? ? ?
GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 GET 请求只应当用于取回数据
POST 方法
请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:
POST /test/demo_form.asp HTTP/1.1 Host: https://www.wendangku.net/doc/2b2638280.html, name1=value1&name2=value2

方案违背和方案偏离的定义、区别和处理资料

方案违背和方案偏离的定义、区别和处理 方案违背(Protocol Violation)和方案偏离(Protocol Deviation)的差别在于严重程度不同,但是关于PD和PV的定义、记录及通报过程,在不同的试验方案或不同的申办方,要求也不尽相同。 方案偏离:研究者管理下,任何的改变和不遵循临床试验方案设计或流程的,且没有得到IRB批准的行为。只要没有严重影响受试者的权益、安全性和获益,或研究数据的完整性,精确性和可靠性,这种属于轻微的方案偏离。 方案违背:方案违背是偏离IRB批准的方案的一种,它可影响到受试者的权益,安全性和获益,或研究数据的完整性,精确性和可靠性。 方案违背是方案偏离的一种,PV比PD严重,就像SAE和AE一样的关系。 PV一般需要在临床总结报告中报告,而轻微的PD可以不在临床总结报告中报告。 1偏离方案分类 按发生的责任主体可分为:研究者/研究机构不依从的PD,受试者不依从导致的PD,申办者方面不依从的PD; 2常见的方案偏离 ?访视/观察/检查在时间窗外,但不影响受试者按方案继续使用研究药 物,或不影响对主要疗效和关键的次要疗效指标评价的有效性。 ?方案规定观察的数据点或实验室参数缺失而导致数据的指缺失,但不影 响主要疗效或关键的次要疗效或安全性指标结果。如方案中规定收集的 指标没有设计在病例报告表中,某研究机构不具备某实验室指标的检查 条件等。 ?观察/评价不全,但不影响主要或次要关键疗效或安全结果,如在非高 血压的临床试验中,忘记测量血压。 3以下情况不属于方案偏离 ?因为提前中止试验(患者撤销同意,或因其他原因决定中止患者参加试 验),中止后的检查未做。

HTTP-get-post-soap比较

在https://www.wendangku.net/doc/2b2638280.html, 中,XML Web Service支持三种协议来与用户交流数据。这三种协议分别是: 1.SOAP:Simple Object Access Protocol 2.HTTP-GET 3.HTTP-POST 1.首先我们先来理解一下这三者的大概定义。 在这三种协议中,SOAP是XML Web Service最常用到的连接协议。与HTTP相比,SOAP显的更为复杂,但却拥有更强的接受能力。SOAP是一种以XML为基础的协议,它提供一种将数据打包(Packaging)和编码(Encoding)的方法,以用于网络的数据传输。任意一个用户都可以使用SOAP协议与任何一个XML Web Service进行通信,甚至于说这个XML Web Service不是建立在.NET 平台上的,比如说Java的,我们都可以利用SOAP来进行数据传输。因此可见,SOAP也是Language Independent.(语言独立性) HTTP(Hypertext Transfer Protocol) 已经是众所周知的协议了,它是XML Web Service数据传输的标准,这包括了在使用SOAP传输数据的时候。HTTP将SOAP 消息压缩,然后以它的形式进行网络传输。然而当我们谈及在XML Web Service 下使用HTTP-GET和HTTP-POST的时候,我们实事上在谈有关单独使用HTTP调用XML Web Service中的方法的能力,这里我说的单独使用,指的是不使用SOAP。 在HTTP中,GET 和POST并不是一种协议,它们是可以用来与Web Service交互的几种方法中的其中二种。然而,这二种方法的传送参数和数据的能力使它们变成了一种简单的,非常适合用来调用XML Web Service的工具。 2.HTTP-GET 和HTTP-POST 的比较 这二者最大的区别在于数据是如何与要求的消息捆绑在一起的。 HTTP-GET的处理特征如下: 。将数据添加到URL 。利用一个问号(”?”)代表URL地址的结尾与数据的开端。 。每一个数据的元素以名称/值 (name/value) 的形式出现。 。利用一个分号(“;”)来区分多个数据元素。 HTTP-POST的处理特征如下:

HTTP请求方式之POST请求

HTTP 请求方式之POST 请求 在HTTP 请求消息中,请求方式有GET 、POST 、HEAD 、OPTIONS 、DELETE 、TRACE 、PUT 和CONNECT 八种。而在以后们最常用的有两种请求方式:POST 请求、GET 请求。这两种请求方式所对应的请求协议内容略有不同, 在上一节的HTTP 请求协议中,我们已经了解了GET 请求方式的请求信息,下面我们来学习Post 请求。 1.POST 请求 我们在浏览器地址栏上直接输入网址访问资源,这种请求方式是GET 请求,超链接请求也属于GET 请求,下面我们要演示的是POST 请求: (1)创建一个web 应用,名称为Example04,并在该应用中的WebRoot 目录下新建一个form.html 文件。详情请见Post 请求案例详解。点击此处 Example04.zip 下载Examplie04。主要 代码如例1-1所示: 例1-1form.html

用户名:
密码:
(2)将Example04发布到Tomcat 中,启动Tomcat 服务器。在浏览器端地址栏上输入http://localhost:8080/Example04/form.html ,并使用HttpWatch 进行抓包,如图1-1所示: 图1-1访问form.html 填写用户名:zhangsan 填写密码:123点击提交点击提交之前,先点击Clear 选项,清理一下

HTTP请求方法及响应码详解(http get post head)

HTTP是Web协议集中的重要协议,它是从客户机/服务器模型发展起来的。客户机/服务器是运行一对 相互通信的程序,客户与服务器连接时,首先,向服务器提出请求,服务器根据客户的请求,完成处理 并给出响应。浏览器就是与Web服务器产生连接的客户端程序,它的端口为TCP的80端口,。浏览器 与Web 服务器之间所遵循的协议就是HTTP。 HTTP的早期版本为HTTP/0.9,它适用于各种数据信息的简洁快速协议,但是其远不能满足日益发展各 种应用的需要。但HTTP/0.9作为HTTP协议具有典型的无状态性:每个事务都是独立进行处理的,当 一个事务开始就在客户与服务器之间建立一个连接,当事务结束时就释放这个连接。HTTP/0.9包含Simple-Request&Simple-Responsed的报文结构。但是客户无法使用内容协商,所以服务器也无法 返回实体的媒体类型。 1982年,Tim Berners-Lee提出了HTTP/1.0,在此后的不断丰富和发展中,HTTP/1.0成为最重要 的面向事务的应用层协议。该协议对每一次请求/响应,建立并拆除一次连接。其特点是简单、易于管理,所以它符合了大家的需要,得到了广泛的应用。其缺点是仍会发生下列问题:对用户请求响应慢、网络拥 塞严重、安全性等。 1997年形成的HTTP/1.1,也就是现在普遍使用的协议,在持续连接操作机制中实现流水方式,即客户 端需要对同一服务器发出多个请求时,其实现在多数的网页都是有多部分组成(比如多张图片),可用 流水线方式加快速度,流水机制就是指连续发出多个请求并等到这些请求发送完毕,再等待响应。这样 就大大节省了单独请求对响应的等待时间,使我们得到更快速的浏览。 另外,HTTP/1.1服务器端处理请求时按照收到的顺序进行,这就保证了传输的正确性。当然,服务器端 在发生连接中断时,会自动的重传请求,保证数据的完整性。 HTTP/1.1还提供了身份认证、状态管理和Cache缓存等机制。这里,我想特别提一下关于HTTP/1.1 中的Cache缓存机制对 HTTP/1.0的不足之处的改进,它严格全面,既可以减少时间延迟、又节省了带宽。HTTP/1.1采用了内容协商机制,选择最合适的用户的内容表现形式。 现在,很多地方都有用到的虚拟主机技术在HTTP/1.1中也可以实现。所谓的虚拟主机技术,就是同一 主机地址实际对应多台主机。通俗的讲,当你同时在一个网站申请两个主页时,用协议分析仪可以发现 其实这两个主页对应的是同一个IP地址。这样用多台完全相同的机器形成WWW服务器就可以提高处 理的吞吐量。 传统的解决方案是改造域名服务器使其可以根据一定的算法将同一域名解释成不同的IP地址。分别对应 虚拟主机的每台机器,其缺点是要求每台机器占用完全独立的IP地址,这与IP地址的缺乏是相矛盾的。HTTP/1.1提供的解决方案在HTTP协议自身中加入了指定不同主机的功能,从而多台主机可以共享一个IP地址,既提高了性能又便于管理。 因为HTTP/1.1是Internet现行的标准协议,这里详细介绍其相关语法。 首先,HTTP/1.1格式可写为: 其中请求方法是请求一定的Web页面的程序或用于特定的URL。可选用下列几种: GET:请求指定的页面信息,并返回实体主体。 HEAD:只请求页面的首部。 POST:请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。 PUT:从客户端向服务器传送的数据取代指定的文档的内容。

XMLHttpRequest[GET和Post]详解

【XMLHttpRequest】 Ajax-Post() document.getElementById("Confirm").onclick = function() { //debugger; //return ValiTitle() && ValiMatter(); //使用Ajax技术; if (ValiTitle() && ValiMatter()) { //验证之后禁用按钮; this.disabled = true; //创建XMLHttpRequest对象; var xhr = new XMLHttpRequest(); //使用open("post","Append.aspx")方法,采用Post方法传值传递给Append.aspx页面; xhr.open("post", "append.aspx"); //使用post发放传旨的时候在open()方法之后设置setRequsetHeader("Content-Type","application/x-www-form-urlencoded") xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //增加事件侦听onreadystatechange<-当读取状态发生变化的时候; xhr.onreadystatechange = function() { //读取状态为4的时候 if (xhr.readyState == 4) { alert(xhr.responseText); //提交数据之后form中数据清空,按钮可用; document.getElementById("Myform").reset(); document.getElementById("Confirm").disabled = false; } } //结束用send()相应setRequsetHeader的参数; xhr.send("Title=" + encodeURIComponent(document.getElementById("Title").value) + "&Matter=" + encodeURIComponent(document.getElementById("Matter").value)); } return false; } Ajax-Get() document.getElementById("Confirm").onclick = function() { var XHR = new XMLHttpRequest(); XHR.open("get", "From.aspx?ID=" + document.getElementById("ID").value);//默认为true; 异步的意思 XHR.onreadystatechange = function() { if (XHR.readyState == 4) { if (XHR.status == 200) { //alert(XHR.responseText); var str = XHR.responseText; var arr = str.split(','); //document.getElementById().innerHTML=arr[]; //调用函数; dispost(responseText); } } } XHR.send(null); return false; } 【Ajax】 =参考【XMLHttpRequest手册】 JS URL传值