GET与POST方法的区别

上一篇 / 下一篇  2012-03-06 15:48:21 / 个人分类:理论

一直没有仔细的研究到底GET方法和POST方法之间有什么区别,直到今天做一个文件上传的表单。文件上传的表单必须使用post方法提交,为什么必须这样?Get方法为什么不行?

          带着这样的问题我查了一下《计算机网络》这本书对POST和GET方法在HTTP协议中的简单解释:HTTP协议定义了通信的两种报文:请求报文和响应报文。对于请求报文来说,它的通用格式包含三个主要部分:请求行、首部行、实体主体。通常请求行的格式为:方法字段 、 URL字段、 HTTP协议版本字段,其中方法字段就包括GET、POST方法等。

当方法字段是GET方法时内容主体为空,而是用POST方法时才使用实体主体。

     HTTP客户机通常在用户提交表单时使用POST方法,这时,实体主体中所包含的就是用户在表单中的输入值。当然,GET方法也可以提交表单中的数据,它是通过将用户在表单中的输入值传送到正确的URL来实现的。这就是我们通常所看到的http://ei.hust.edu.cn?username="libis"&age=12

可以看出,在表单提交的方式上两者存在很大的不同:
Post方法将表单数据填充到HTTP请求报文中的实体主体部分,使用者是看不到的。而GET方法则是将表单数据直接传送到请求行的URL字段来实现表单数据提交的。这也就决定了使用POST是相对比较安全的,而是用GET方法的安全性就很低。

除此之外,GET方法和POST方法另一个重要的区别是:
GET方法传送的数据量较小,一般只有2k。而POST方法传送的数据量较大,理论上没有上限。


 
最近读者:

TAG:

 

评分:0

我来说两句

Open Toolbar