REST风格和面向过程面向对象的设计方式有什么区别?
从更高的层次上看,他们是抽象的层次或者说是角度不同。REST重点是抽象资源。
面向过程编程时,为什么要以算法和处理过程为中心,输入数据,输出结果?当然是为了符合计算机世界中主流的交互方式。
面向对象编程时,为什么要将数据和行为统一起来、封装成对象?当然是为了符合现实世界的主流的交互方式。
面向资源编程时,为什么要将数据(资源)作为抽象的主体,把行为看作是统一的接口?当然是为了符合网络世界的主流的交互方式。
REST 与 HTTP 完全绑定,不适合应用于要求高性能传输的场景中?
REST是一种架构风格,是不是与http绑定从高层次来说不是的。但是REST要落地实现,那么它又刚好和http协议这种也是以资源为单位的协议刚好吻合。所以看起来是可以完美契合的。但是REST一定得用http协议实现吗?不是的。
但是http是现成的,接受度很高,很稳定。
REST和rpc有可比性吗?
我觉得大概率是没什么可比性的。非要说有重合的部分那也是非常小的。
REST不擅长处理细节,比如说二进制细节、编码形式、报文格式、连接方式等细节。但是RPC就非常牛逼,在处理这块的时候。
REST 没有传输可靠性支持
是的。REST并没有强制规定具体协议应该怎么做。只是建议,也没有保证传输的可靠性。
所以REST风格的系统要支持幂等。通过重传来解决这个问题。