转 --Http get,post,soap协议的区别

转载至http://www.cnblogs.com/c2303191/articles/1107027.html

1.Http作为web服务的首选协议,居有4大优点:
   1)http非常简单,以纯文本(超文本)形式编码的请求和响应组成
   2)http是无状态的。一旦发送了一个http请求,客户和服务器之间的连接信息就会被释放,有利于减少服务器资源的消耗。
   3)http的运行端口80,在大多数防火墙上是公开的
   4)行业认可。
  但是Http的缺点:
   1)缺少对异步消息的支持
   2)消息传输的不可靠性

2.HTTP-GET 和 HTTP-POST 的比较

这二者最大的区别在于数据是如何与要求的消息捆绑在一起的。

HTTP-GET的处理特征如下:

。将数据添加到URL

。利用一个问号(”?”)代表URL地址的结尾与数据的开端。

。每一个数据的元素以 名称/值 (name/value) 的形式出现。

。利用一个分号(“;”)来区分多个数据元素(原文是这样说的,但是我在传参数的时候都是用&分割两个参数的,待考证 )。

。 查询字符串的长度受到web浏览器和web服务器的限制(如IE最多支持2048个字符),适合传输简单数据,不适合传输大型数据集
        同时,它很不安全


HTTP-POST的处理特征如下:

。将数据包括在HTTP主体中。(名为entity body)传输的,这一部分用来传输表单信息,因此必须将
      Content-type设置为:application/x-www-form-urlencoded。

。 post设计用来支持web窗体上的用户字段同样的,数据的元素以 名称/值 (name/value) 的形式出现。

。但是每一个数据元素分别占用主体的一行。

。  但是:适合传输大型name/value类型数据但它不支持复杂数据类型,因为post没有定义传输数据结构的语义和规则

3)soap:是http post的一个专用版本,遵循一种特殊的xml消息格式
        Content-type设置为: text/xml
        任何数据都可以xml化

用webservice时候只知道webservice是通过soap协议传输的,但不知道soap是http的一个子类,在通过webservice获取网页调用IP时看到httpserlvetRequest就以为应该是网页的httprequest,不是项目服务器调用webservice的IP,看了这篇文章才知道原来是这样一回事,学习了。

猜你喜欢

转载自liuzl121.iteye.com/blog/1717405