Get和Post请求区别和使用场景 | 您所在的位置:网站首页 › 场景情景区别 › Get和Post请求区别和使用场景 |
GET和POST是什么?
答:HTTP协议中的两种发送请求的方法。 HTTP是什么?答:HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。 Get请求和Post请求区别:(1)post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中) (2)post发送的数据更大(get有url长度限制) (3)post能发送更多的数据类型(get只能发送ASCII字符) (4)post比get慢 (5)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据. 总结:GET把参数包含在URL中,POST通过request body传递参数,所以Post更加安全一些;Get的效率比Post高一些,但是Get请求发送的参数是有限的,而Post请求是没有限制的(理论上来讲)。 使用场景: 在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;Get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;区别表现如下: Get是从服务器上获取数据,Post是向服务器传送数据。Get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。Post是通过HTTP Post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。对于Get方式,服务器端用Request.QueryString获取变量的值,对于Post方式,服务器端用Request.Form获取提交的数据。Get传送的数据量较小,不能大于2KB。Post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。 5. Get安全性非常低,Post安全性较高。但是执行效率却比Post方法好。 Get和Post还有一个重大区别:Get产生一个TCP数据包;Post产生两个TCP数据包。 对于Get方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据),而对于Post,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。 比如说:Get只需要汽车跑一趟就把货送到了,而Post得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。由于Post需要两步,时间上消耗的要多一点,所以Get比Post更有效率。
|
CopyRight 2018-2019 实验室设备网 版权所有 |