首页 > 代码库 > Get与Post区别小结

Get与Post区别小结

      Get:是以实体的方式得到由请求Url所指定资源的信息,如果请求Url只是一个数据产生过程,那么最终要在实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述。

      Post:是用来向目的服务器发出请求,要求服务器接受被附在请求后的实体,,并把它当作请求队列中请求Url所指定资源的附加新子项。Post主要实现以下功能:(1)对现有资源的解释;(2)向电子公告栏、新闻组、邮件列表及类似讨论组发消息;(3)提交数据块;(4)通过附加操作来扩展数据库。

      从以上看出,Get是向服务器发送的索取数据的一种请求;而Post是向服务器提交数据的一种请求,要提交的数据位于信息头后面的实体中。

    一方面,Get与Post(对于“Post”cache-control或者expires头域指示不可缓存外)请求均可缓存。

    另一方面,在以下方面存在差异:

      1.生成方式:

      get方式有四种:1)直接在Url地址栏中输入Url;2)网页中的超链接;3)form中method为get;4)form中method为空时,默认是get提交。

      post只知道有一种:form中method属性为post。

      注意:form提交的时候,如果不指定method,则默认为get请求,form中提交的数据将会附加在url之后,以?与URL分开。字母数字字符原样发送,但空格转换为“+”号,其它符号转换为%xx,其中xx为该符号为16进制表示的ASCII(或ISO Latin-1)值;

      2、数据传送方式:

      get方式:表单数据存放在Url地址后面。所有get方式提交时HTTP中没有消息体。

      post方式:表单数据存放在HTTP协议的消息体中以实体的方式传送到服务器。

      3、服务器获取数据方式:

      Get方式:服务器采用request.QueryString来获取变量的值。

      Post方式:服务器采用request.Form来获取数据。

      4、传送的数据量:

      Get方式:数据量长度有限制,一般不超过2kb。因为是参数传递,且在地址栏中,故数据量有限制。

      Post方式:适合大规模的数据传送。因为是以实体的方式传送的。

      5、安全性:

      Get方式:安全性差。因为是直接将数据显示在地址栏中,浏览器有缓冲,可记录用户信息。所以安全性低。

      Post方式:安全性高。因为post方式提交数据时是采用的HTTP post机制,是将表单中的字段与值放置在HTTP HEADER内一起传送到ACTION所指的Url中,用户是看不见的。

      6、在用户刷新时

      Get方式:不会有任何提示。

      Post方式:会弹出提示框,问用户是否重新提交。

 

Get与Post区别小结