sqlserver数据库dump文件分析
认识ProtoBuf

认识ProtoBuf

参考

深入 ProtoBuf - 简介
深入 ProtoBuf - 编码


初识

何为 ProtoBuf
我们先来看看官方文档给出的定义和描述:

protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。

Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。

你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更新数据结构,而不破坏由旧数据结构编译的已部署程序。

简单来讲, ProtoBuf 是结构数据序列化 方法,可简单类比于 XML,其具有以下特点:

  • 语言无关、平台无关。即 ProtoBuf 支持 Java、C++、Python 等多种语言,支持多个平台
  • 高效。即比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单
  • 扩展性、兼容性好。你可以更新数据结构,而不影响和破坏原有的旧程序

关于 ProtoBuf 的一些思考

官方文档以及网上很多文章提到 ProtoBuf 可类比 XML 或 JSON。

那么 ProtoBuf 是否就等同于 XML 和 JSON 呢,它们是否具有完全相同的应用场景呢?

个人认为如果要将 ProtoBuf、XML、JSON 三者放到一起去比较,应该区分两个维度。一个是数据结构化,一个是数据序列化。这里的数据结构化主要面向开发或业务层面,数据序列化面向通信或存储层面,当然数据序列化也需要“结构”和“格式”,所以这两者之间的区别主要在于面向领域和场景不同,一般要求和侧重点也会有所不同。数据结构化侧重人类可读性甚至有时会强调语义表达能力,而数据序列化侧重效率和压缩。

总结

  1. XML、JSON、ProtoBuf 都具有数据结构化和数据序列化的能力
  2. XML、JSON更注重数据结构化,关注人类可读性和语义表达能力。
  3. ProtoBuf 更注重数据序列化,关注效率、空间、速度,人类可读性差,语义表达能力不足(为保证极致的效率,会舍弃一部分元信息)
  4. ProtoBuf 的应用场景更为明确,XML、JSON 的应用场景更为丰富。

当按下回车时发生了什么?

这个仓库试图回答一个古老的面试问题:当你在浏览器中输入 google.com 并且按下回车之后发生了什么?

不过我们不再局限于平常的回答,而是想办法回答地尽可能具体,不遗漏任何细节。

这将是一个协作的过程,所以深入挖掘吧,并且帮助我们一起完善它。仍然有大量的细节等待着你来添加,欢迎向我们发送 Pull Requset!

这些内容使用 Creative Commons Zero_ 协议发布。

阅读更多

使用Postman测试SOAP接口

使用Postman发出SOAP请求
我们知道它说的是Postman“REST”客户端,但这并不意味着我们不能将其用于发出SOAP请求。通过执行以下简单步骤,可以轻松地使用Postman发出任何HTTP SOAP请求:

阅读更多

ASP.Net MVC action 同时支持Get和Post

项目中遇到一个action,有post和get请求,特此记录方法:
在action 上加上 AcceptVerbs标签:

1
2
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
public ActionResult Index()

转自:https://blog.csdn.net/Helloantoherday/article/details/85007344

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×