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更有效率。
总结:
get请求数据,post提交数据。
查询用get,增删改用post。