伊谢尔伦2017-06-17 09:17:461楼
http 请求提供网络交互的基础能力,常见 http 动词有:GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS。ajax 是 “Asynchronous Javascript and XML” 的缩写,顾名思义,它强调异步获取数据,返回数据格式要求是 json 或 XML。
所以,ajax 是一种宽松的客户侧数据请求实现,采用异步方式以便提升用户体验。就其自身概念而言,它只管关注客户侧自身(发出请求与获得数据)。http 则是客户侧与服务侧的交互的一套协议规范,是所有建立其上的各种互联网技术(如 RESTful, JSONP, AJAX 等)的基础。
与 http, ajax 紧密相关,也容易弄混的另一个概念是 RESTful,RESTful 专注于 “资源” 的表现层状态转化,它是一种架构原则,或称开发方法,要求以规范形式提供 API 接口,对 GET,POST,PUT,DELETE 等指令附加特定约束,比如,GET 不能改变服务侧数据,PUT 与 DELETE 要幂等。
举个例子来说,客户侧用 ajax 发起一个 PUT 操作,它只管发出请求,然后要求异步得到结果,ajax 具体实现可以是 RESTful 风格的(也可以不是),而该 PUT 操作最终实现依赖于 http 请求,如果涉及跨域,浏览器还可能自动插入一次 http 的 OPTIONS 查询。