向服务器发送请求
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
无法使用缓存文件(更新服务器上的文件或数据库)
向服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
若符合下列任一情况,则用POST方法:
- 请求的结果有持续性的副作用,例如,数据库内添加新的数据行。
- 若使用GET方法,则表单上收集的数据可能让URL过长。
- 要传送的数据不是采用7位的ASCII编码。
若符合下列任一情况,则用GET方法:
- 请求是为了查找资源,HTML表单数据仅用来帮助搜索。
- 请求结果无持续性的副作用。
- 收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符
两者的区别:
①传送方式不同:get通过地址栏传输,post通过报文传输。
②get产生一个TCP数据包,post产生两个数据包,对于get方式的请求,浏览器会把http header和data一并发送出去,服务器响应200;而对于post浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200。
③get参数有长度限制,传送数据量不能大于2kb,post传送数据量不受限制(一般会受服务器配置限制或者内存大小)。
④get安全性非常低,post安全性较高,但是执行效率比post方法好。
⑤get方式服务器端用Request.QueryString获取变量的值,post方式服务器端用Request.Form获取提交的数据。
⑥get是从服务器上获取数据,post是向服务器传送数据。