get和post的区别
-
get和post都是http协议中的一种请求方式,不同的请求方式有不同的特点,工作模式也不一样
-
get请求没有请求正文部分,而post有,所以get方式不能使用正文提交数据,但是可以使用queryString的方式来提交,注意:queryString是url的一部分,和请求方式无关,所以不论是什么请求方式都是可以有queryString的,需要再次注意的是,queryString的长度(url的长度)是有限制的,所以如果请求方式是get,那么通过queryString提交的数据的话,注意长度不要超出url的长度限制范围,(范围:2000多个,不同浏览器的url长度限制不一样,标准浏览器一般要再多点)
-
使用queryString方式传输数据的时候需要对传输的数据进行转码(url编码)-encodeURI()
-
使用http的正文发送(post),那么是通过send方法把数据添加到正文中,同时还需要设置发送头信息,设置content-type的类型,这个类型必须和后端的解析类型保持一致,当数头信息设置成application/x-www-form-urlencoded的时候,不需要手动进行编码
-
get方式会缓存页面,需要通过随机数或时间戳解决缓存问题,而post不会缓存所以没有该问题
-
因为get方式会缓存,同时缓存文件名中有提交的数据,所以get方式传递数据有一定隐私安全上的隐患,所以敏感数据通过post提交
异步同步
异步、同步、阻塞、非阻塞
异步和同步:被请求人的消息通知机制
异步:当被请求人处理完成事情以后会主动通知(事件通知,回调等方式)
同步:当被请求人处理完成事情以后不会主动通知,需要请求的人主动轮询
阻塞和非阻塞:请求人事务处理机制
ajax
- 异步非阻塞