# 交互协议

# Flag

端到端、服务到服务、端到服务之间的交互协议规范

一维码/二维码

usps智能邮件条形码(Intelligent Mail 条形码)、Japanpost(Japanese Postal Code)、Koreapost、RoyalMail(RM4SCC)、RoyalMailMailmark(Royal Mail 4-State Mailmark)、DeutschePostIdentCode、DeutshePostLeitCode、LOGMARS、Telepen、TelepenNumeric、Databar、DatabarLimited、DatabarOmniStacked、DatabarStacked、DatabarTruncated、UKPlessey、KIX、VINCode、Pharmacode、Pharmacode2Track、Planet、MSIPlessey、SSCC18、Flattermarken、PostNet、Code11、ChannelCode、ITF14、GS128、Code39码(标准39码)、Codabar码(库德巴码)、Code25码(标准25码)、ITF25码(交叉25码)、Matrix25码(矩阵25码)、UPC-A码、UPC-E码、EAN-13码(EAN-13国际商品条码)、EAN-8码(EAN-8国际商品条码)、中国邮政码(矩阵25码的一种变体)、Code-A/B/C码、MSI码、Code11码、Code93码、ISBN码、ISSN码、Code128码(Code128码,包括EAN128码)、Code39EMS(EMS专用的39码)

MicroQRCode、UPNQR、PDF417Truncated、MicroPDF417、PDF417、Data Matrix、AZTEC、AztecRunes、Code16K、CodablockF、Code49、CodeOne、DotCode、GridMatrix、MaxiCode、QR Code、Vericode、Ultracode、Code 49、Code 16K、Code One、GS1 DataBar、DataBar、GS1 DataBar Expanded、GS1 DataBar Limited、Grid Matrix、Maxi、Han Xin Code(汉信码)、CP、Codablock F、Semacode、DataGlyphs

  • 矩阵式二维码
  • 堆叠式/行排式

# 数据传输模型

该模型用于帮助人们解决应用程序与服务器传递数据的问题

  • RPC(remote procedure call,远程过程调用):一种通过网络从远程计算机程序上跨语言跨平台的请求服务。主要是分布式式系统中应用。
    • RPC按通信协议,可以分为:基于HTTP的、基于TCP等;
    • 按报文协议可以分为:基于XML文本的、基于JSON文本的,二进制的;
    • 按照是否跨平台语言,可以分为:平台专用的,平台中立的
  • SOAP(Simple Object Access Protocol,简单对象访问协议):基于 HTTP或 SMTP等多种网络标准规约,它是向网络上的其他计算机传送 XML文档而定义标准Package结构的通信规约息。
  • WSDL (WebServices Description Language):WEB服务描述语言,它是Web Service服务端使用说明书,说明服务端接口、方法、参数和返回值,随服务发布自动生成
  • RMI(remote method invocation,面向对象的远程方法调用)
  • REST(representational state transfer,表达性状态转移)
  • Restful:一种接口规范,符合这套规范编写的接口就是restful 接口
  • JMS(Java Messaging Service)Java 消息服务
  • EJB(enterprise java bean)
  • JNDI(Java naming and Directory Interface)
  • JRMP(Java Remote Method Protocol)

# 网络通信协议

应用层

Gopher -> HTTP -> Gemini

通信层

网络层

  • IP(Internet Protocol)
  • ICMP(Internet Control Message Protocol,主要用于路由发送错误报告)
  • IGMP

链接层

  • MAC(media access control)
  • ARP
  • RARP

Proxy代理协议

  • VMess
  • VLESS
  • VLite
  • Trojan
  • Shadowsocks
  • Socks
  • HTTP
  • Freedom
  • Dokodemo
  • Blockhole
  • DNS
  • Loopback

# HTTP

Content-Type只会存在于POSTPATCHPUT等有请求数据实体时指定数据类型和数据字符集编码, 而GETDELETEHEADOPTIONSTRACE等没有请求数据实体

Content-Length则视Content-Type而定,如text/htmltext/javascript等请求数据没有Content-Length

POSTPATCHPUT等请求有请求数据实体的数据为表单参数, GETDELETEHEADOPTIONSTRACE等没有请求数据实体的查询参数拼接在URL?后面