GET
和
POST
的主要区别表现在数据传递上
①
GET
在请求
URL
后面以
?
的形式跟上发给服务器的参数,多个参数之间用
&
隔开,比如
http://ww.test.com/login?username=123&pwd=234&type=JSON
由于浏览器和服务器对
URL
长度有限制,因此在
URL
后面附带的参数是有限制的,通常不能超过
1KB
②POST
发给服务器的参数全部放在
请求体
中
理论上,
POST
传递的数据量没有限制(具体还得看服务器的处理能力)
选择
GET
和
POST
的建议
如果要传递大量数据,比如文件上传,只能用
POST
请求
GET
的安全性比
POST
要差些,如果包含机密
\
敏感信息,建议用
POST
如果仅仅是索取数据(数据查询),建议使用
GET
如果是增加、修改
、
删除数据,建议使用
POST
GET
请求跟随在URL之后的请求长度是有限的,过长的请求参数,或如文件上传这类的大量数据就不适合
GET
请求,而应该改用
POST
GET
请求的请求参数会出现在地址栏上,敏感性或有安全性考虑的请求参数(如信用卡号,用户名,密码等)就不应该使用
GET
请求来发送。
POST
请求的参数不会出现在地址栏上,所以无法加入浏览器的书签中(Bookmark),如果有些页面是根据请求参数来作不同的画面呈现(如论坛的文章发表),而你希望可以让用户设定书签,以便日后可以直接点击书签浏览,则应该使用
GET
请求。
有些浏览器会依据为你工作来缓存(Cache)数据,如果网址是相同的URL,则会直接从浏览器的缓存中获取数据,而不会真正发送请求至服务器上查询最新的数据,如果不希望服务器状态改变了,而浏览器仍从缓存中取得旧数据,则可以改用
POST
请求(
GET
请求也可以避免缓存,例如在网址上附上时间戳,让每次GET请求的地址都不相同)