表面上:
get是从服务器上获取数据,post是向服务器传送数据;
实质上:
1.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到(例如.baidu.com?#wd=百度一下);
post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。(类似加密的xml文件);
2.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据;
特点与注意:
1.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。(但理论上,IIS4中最大量为80KB,IIS5中为100KB);
2.get安全性非常低,post安全性较高。但是执行效率却比Post方法好;
使用时的建议:
1.get方式的安全性较Post方式要差些(因为用户可见传送信息),包含机密信息的话,建议用Post数据提交方式;
2.在做数据查询时,建议用Get方式(所以叫Get方法);而在做数据添加、修改或删除时,建议用Post方式;
wiki上的原文:
GET requests a representation of the specified resource. Note that GET should not be used for operations that cause side-effects, such as using it for taking actions in web applications. One reason for this is that GET may be used arbitrarily by robots or crawlers, which should not need to consider the side effects that a request should cause.
参考翻译:GET请求指定的资源的表示,需要注意的是GET不应被用于能引起的副作用的操作,比如其用于采取行动在一个的web应用程序。其中一个原因是,GET可以被机器人和爬虫利用,这是本不必去考虑的一个请求的副作用;
POST submits data to be processed (e.g., from an HTML form) to the identified resource. The data is included in the body of the request. This may result in the creation of a new resource or the updates of existing resources or both.
参考翻译:POST提交将要被处理到能有实际资源的数据(例如,从一个HTML表格)该数据被包括在request的body中,这可能会导致一个新的资源的建立,现有资源的更新或以上两种情况。