一、HTTP中的请求方法

HTTP 定义了与服务器交互的不同方法,最常用的有4种:Put(增),Delete(删),Post(改),Get(查),即增删改查。
1)Get: 它用于获取信息,注意,他只是获取、查询数据,也就是说它不会修改服务器上的数据,从这点来讲,它是数据安全的。而Post是可以修改数据的,所以这也是两者差别之一。

2) Post: 它是可以向服务器发送修改请求,从而修改服务器的,比方说,我们要在论坛上回贴、在博客上评论,这就要用到Post了,当然它也是可以仅仅获取数据的。

3)Delete: 删除数据。可以通过Get/Post来实现。

4)Put: 增加、放置数据,可以通过Get/Post来实现。

二:Post和Get的区别

GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

(1)Get是从服务器上获取数据,Post是向服务器传送数据。
(2) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;Post方式,数据放置在HTML HEADER内提交。
(3) 对于Get方式,服务器端用Request.QueryString获取变量的值,对于Post方式,服务器端用Request.Form获取提交的数据。
(4) Get方式提交的数据最多只能有1024字节,而Post则没有此限制。
(5) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 Get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 Post为好。
(6)GET产生一个TCP数据包;POST产生两个TCP数据包。

注意事项:

  1. GET与POST都有自己的语义,不能随便混用。
  2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。
  3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。