首页 > 技术文章 > get和post请求的区别

guolintao 2017-11-07 09:49 原文

get和post的区别

  1. get和post都是http协议中的一种请求方式,不同的请求方式有不同的特点,工作模式也不一样

  2. get请求没有请求正文部分,而post有,所以get方式不能使用正文提交数据,但是可以使用queryString的方式来提交,注意:queryString是url的一部分,和请求方式无关,所以不论是什么请求方式都是可以有queryString的,需要再次注意的是,queryString的长度(url的长度)是有限制的,所以如果请求方式是get,那么通过queryString提交的数据的话,注意长度不要超出url的长度限制范围,(范围:2000多个,不同浏览器的url长度限制不一样,标准浏览器一般要再多点)

  3. 使用queryString方式传输数据的时候需要对传输的数据进行转码(url编码)-encodeURI()

  4. 使用http的正文发送(post),那么是通过send方法把数据添加到正文中,同时还需要设置发送头信息,设置content-type的类型,这个类型必须和后端的解析类型保持一致,当数头信息设置成application/x-www-form-urlencoded的时候,不需要手动进行编码

  5. get方式会缓存页面,需要通过随机数或时间戳解决缓存问题,而post不会缓存所以没有该问题

  6. 因为get方式会缓存,同时缓存文件名中有提交的数据,所以get方式传递数据有一定隐私安全上的隐患,所以敏感数据通过post提交

异步同步

异步、同步、阻塞、非阻塞
异步和同步:被请求人的消息通知机制
异步:当被请求人处理完成事情以后会主动通知(事件通知,回调等方式)
同步:当被请求人处理完成事情以后不会主动通知,需要请求的人主动轮询
阻塞和非阻塞:请求人事务处理机制

ajax
- 异步非阻塞

推荐阅读