灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3040回复:0

HTTP协议中GET和POST方法的区别

楼主#
更多 发布于:2012-08-24 21:15

HTTP协议中GET和POST方法的区别
HTTP GET和HTTP POST是使用HTTP的标准协议动词,用于编码和传送变量名/变量值对参数,并且使用相关的请求语义。每个http请求都由一系列HTTP请求头组成,这些请求头定义了客户端从服务器请求了什么,而响应则是由一系列HTTP应答头和应答数据组成,如果请求成功则返回应答。  
HTTP GET以使用MIME类型application/x-www-form- urlencoded的urlencoded文本的格式传递参数。
Urlencoding是一种字符编码,保证被传送的参数由遵循规范的文本组成,例如一个空格的编码是"%20"。附加参数还能被认为是一个查询字符串。而http post参数也是被URL编码的。但是变量名和变量值不作为URL的一部分被传送,而是放在实际的HTTP请求消息内部被传送。
换句话说,get和post的区别在于:
如果以get方式传输,所带参数附加在URL后直接传给server,并可从server端的QUERY_STRING这个环境变量中读取;如果以post方式传输,则参数会被打包在数据报中传送给server,并可从CONTENT_LENGTH这个环境变量中读取出来。  
如果你的请求只是从服务器上获取数据,那使用get好了。但是如果你需要向服务器提交数据(比如Form表单),那么就得使用post。一般而言,get传送的数据有长度限制,而post理论上是无限的。get发生的数据在地址栏上可以被看到,而post方式传送的数据是看不到了。

喜欢0 评分0
游客

返回顶部