原文链接:https://www.cnblogs.com/hmycheryl/p/8603365.html
区别:
1.传送方式不同:get通过地址栏传输,post通过报文传输。
2.get产生一个TCP数据包,post产生两个数据包。对于get方式的请求,浏览器会把http header和data一并发送出去,服务器响应200;而对于post浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200.
3.get参数有长度限制,传送数据量不能大于2kb,post传送数据量不受限制(一般会受服务器配置限制或者内存大小)。
4.get安全性非常低,post安全性较高,但是执行效率比post高。
5.get方式服务器端用Resquest.QueryString获取变量的值,post方式服务器端用Request.Form获取提交的数据。
6.get是从服务器上获取数据,而post是向服务器传送数据。
应用场景:
若符合下列任一种情况,则用get:
1.请求是为了查找资源,HTML表单数据仅用来帮助搜索。
2.请求结果无持续性的副作用。
3.收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。
若符合下列任一种情况,则用post:
1.请求的结果有持续性的副作用,例如数据库内添加新的数据库行。
2.若使用get方法,表单上收集的数据可能让URL过长。
3.要传送的数据不是采用7位的ASCII编码。