• 通讯协议,文本载体协议


      最近在看一些通讯协议,还有二进制协议以及文本协议,有点晕,先记录下来:

      通讯协议:

    网络传输协议忘了差不多了,先看看:

    http://blog.csdn.net/yaopeng_2005/article/details/7064869

    网络由下往上分为:

      物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

      如果编程的时候只是使用tcp协议那就是只用到了传输层,http属于应用层协议,是在TCP协议基础上的协议。

      webSocket 协议和http协议一样是基于tcp协议的,而

      Socket是直接操作tcp协议的一组API,是TCP/IP协议族通讯的中间软件抽象层,无关协议类型。用于实现网络层。可以自己进行编码实现。

      AMQP: 是另外一套网络协议,有自己的网络层级。类似于OSI网络协议,所以又和TCP,HTTP不是一个层级的了。(感觉还是不是这样的....应该只是应用层的吧,可是是否是基于TCP的了?)

    了解它是因为RabbitMQ是使用这个协议的。

    RPC协议:远程调用协议。通过网络从远程计算机程序上请求 服务,而不用了解底层网络技术的协议。

    内容传输可以使用的协议(序列化库):

    二进制编码:  protobuffer flatBuffer 

    文本编码: json xml

    文本的可读性强,二进制的性能好。

    thrift 是IDL的一个具体实现---

    RESTFul 一种软件架构风格,而不是标准,提供了一组设计原则和约束条件 --摘自百度百科。

    REST 原则: 表述性状态转移(Representational State Transfer),定义了应该如何正确使用Web标准,如HTTP和URI。

    原则如下:

      将所有“事物“定义ID:对所有觉得重要的食物,都进行URI标识。

      将所有事物链接在一起:”超媒体被当作应用状态引擎“,超媒体-->链接的思想。在任何可能的情况下,使用链接指引可以被标识的事物。

      使用标准方法 包含:GET POST PUT DELETE HEAD OPTIONS 从而保证了调用这些方法可以获得的结果。

      资源多重表达:http可以请求一种特定格式的表述,比如XML或者TEXT格式等。

      无状态通信:可以保证服务器的变化对客户端不可见,也不占用服务器的内存。

    以上具体可以参考:http://kb.cnblogs.com/page/132129/

    RESTFul 论文名称为:架构风格与基于网络应用软件的架构设计

  • 相关阅读:
    Android客户端与服务器交互方式-小结
    个人工作总结01
    第7周学习进度
    第6周学习进度
    PHP_D4_“简易聊天室 ”的具体技术实现
    php_D3_“简易聊天室 ”实现的关键技术 详解
    团队介绍
    最大联通子数组
    构建之法阅读笔记04
    大道至简阅读笔记04
  • 原文地址:https://www.cnblogs.com/edenpans/p/5733982.html
Copyright © 2020-2023  润新知