GET和POST是HTTP协议中定义的两种发送请求的方法。HTTP是基于TCP/IP的关于数据如何在网络中通讯的协议。GET和POST本质上就是TCP连接,并没有差异。可是因为HTTP的规范和浏览器/服务器的限制,致使他们在应用过程当中体现出一些不一样:
①、GET是从指定的服务器中获取数据;POST是提交表单数据给指定的服务器处理
②、GET请求的数据会附在URL以后,以?分割URL和传输数据,多个参数之间以&相连;POST方式将表单内各个字段和内容放置在HTML HEADER中一块儿传送到Action属性所指定的URL地址,用户是看不到这个过程的
③、GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据
④、服务端获取GET请求参数用Request.QueryString,获取POST请求参数用Request.Form
⑤、GET请求会被浏览器主动cache,而POST不会,除非手动设置。
⑥、GET只接受ASCII码的数据类型参数,而POST对参数的数据类型没有限制。
⑦、POST的安全性要比GET的安全性高。
GET和POST一个重大区别:GET产生一个TCP数据包;POST产生两个TCP数据包。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送http header,服务器响应100以后浏览器再发送data,服务器响应200(返回数据)。可是并非全部浏览器都会在POST中发送两次包,Firefox就只发送一次。浏览器