Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。
主要谈谈GET和POST。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。
首先介绍一下GET和POST的概念:
GET用于信息获取,而且应该是安全的和幂等的。
POST表示可能修改变服务器上的资源的请求。
区别与联系:
1、GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII;
2、get传送的数据量较小,这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。。post传送的数据量较大,所以在上传文件只能使用Post,一般被默认为不受限制,起限制作用的是服务器的处理程序的处理能力;
3、get安全性非常低(因为用户可以通过URL看到),post安全性较高(其所有操作对用户来说都是不可见的)。但是执行效率却比post方法好;
4、GET是Form的默认方法;
5、GET方式提交来的数据在服务器端用Request.QueryString()来获取,用Post方式提交的数据用Request.Form()来获取。;
6、GET:查询字符串显示在地址栏的URL中,可见;POST:查询字符串不会显示在地址栏中,不可见;
7、GET请求能够被缓存,GET请求会保存在浏览器的浏览记录中,以GET请求的URL能够保存为浏览器书签;POST请求不能被缓存下来,POST请求不会保存在浏览器浏览记录中,以POST请求的URL无法保存为浏览器书签。