当我们像服务器发送数据时,我们可以采用get或者post,但是什么时候用get?什么时候用post?并且两者有什么区别么?
Get请求和Post请求的区别
1、使用get的时候,参数会在url后面传递数据,而post不会显示,因为post请求是最为http消息的实体内容发送给web服务器。这种区别对于用户是不可见的。
2、get请求发送数据量小(最多也就1024字节),post请求发送数据量大。
为什么说get请求数据量小呢?
因为get是通过url提交数据,那么get可提交的数据量跟url的长度有直接的关系,而实际上url不存在参数上限的问题,而这个限制是浏览器及服务器对它的限制。限制的大小取决于操作系统的支持,注意限制是整个url的长度,而不仅仅是你的参数值数据长度。
3、get的安全性非常低,post安全性较高。
原因:get的请求的数据会被浏览器缓存,其他人可以从浏览器的历史记录读取到这些记录,例如账号和密码。相对于post,可以避免这些问题。
4、在客户端使用get请求时,服务器端使用Request.QueryString来获取参数,而客户端使用post请求时,服务器端使用Request.Form来获取参数。
5、Get请求的目的是给予服务器一些参数,以便从服务器获取列表。例如:list.aspx?page=1,表示获取第一页的数据;Post请求的目的是向服务器发送一些参数,例如form中的内容。
何时用post请求?何时用get请求?
若符合下列任一情况,则用POST方法:
- 请求的结果有持续性的副作用,例如,数据库内添加新的数据行。
- 若使用GET方法,则表单上收集的数据可能让URL过长。
- 要传送的数据不是采用7位的ASCII编码。
- POST方式传递的数据量,不受限制。
若符合下列任一情况,则用GET方法:
- 请求是为了查找资源,HTML表单数据仅用来帮助搜索。
- 请求结果无持续性的副作用。
- 收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。
- 通常不能大于2KB