Google Protocol Buffer(简称 Protobuf)是一种轻便高效的结构化数据存储格式,平台无关.语言无关.可扩展,可用于通讯协议和数据存储等领域. 数据交互xml.json.protobuf格式比较 1.json: 一般的web项目中,最流行的主要还是json.因为浏览器对于json数据支持非常好,有很多内建的函数支持. 2.xml: 在webservice中应用最为广泛,但是相比于json,它的数据更加冗余,因为需要成对的闭合标签.json使用了键值对的方式,不仅压缩了一定…
1. 背景 之前听到同事说,要为自己的模块考虑写个数据协议.今天有空想了一下.写出来,方便后续使用. 开源代码brpc中可以支持多种协议,nshead.redis.mongo等20多种协议. 2. 什么是数据交互协议? 这里说的协议,不是tcp/ip这些网络协议. 在分布式环境中,我们需要将模块的数据通过网络bit流传给上.下游模块,就会涉及到数据完整性.正确性校验. 为了能够校验数据,就需要定义数据交换协议. 3. 代码brpc中的实现 每种协议类型,都需要实现自己的parser类,进行消息的…
一.概念 ①传统Ajax:交互的数据格式——自定义字符串或XML描述: 跨域——通过服务器端代理解决. ②如今最优方案:使用JSON格式来传输数据,使用JSONP来跨域. ③JSON:一种数据交换格式.基于纯文本.被原生JS支持.    格式:两种数据类型描述符:大括号{ }.方括号[ ].分隔符逗号.映射符冒号.定义符双引好. ④JSONP:一种跨域数据交互协议,非官方. 1.Web页面调用js文件,可跨域.扩展:但凡有src属性的标签都具有跨域能力. 2.跨域服务器 动态生成数据 并存入js…
1.JSONP的作用 由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名.协议.端口)的资源,为 了实现跨域请求,可以通过script标签实现跨域请求,然后再服务器端输出JSON数据并执行回调函 数,从而解决了跨域的数据请求. JSONP协议的一个要点:允许用户传递一个callback参数给服务器端,然后服务器端返回数据时 会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自 动处理返回函数了. 2.如何使用JSONP? 在客户端…
前言 在当今社会,作为一名前端程序猿,并不是一昧的去制作静态页面就可以满足滴:你说你会制作网页,好吧,只能说你算是一个前端程序猿.但这是你作为一个程序猿最基本的能力,并不会为你进行加分: 我们都明白,要想提高竞争力,提高自己的技能是十灰重要的.前后台的数据交互就是一个很好的加分项.今天,就带大家一起了解一下web前端实现数据交互的几种方式: 一.Ajax 作为一个前端程序猿,对于各种JS框架和各种库肯定不陌生.原生js的ajax以及jQuery的ajax都是十分常用的数据交互的方式: 1.1原生…
这里将自己这段时间学习的关于前后台数据交互的笔记写在这里,这里包含了Django传输数据给JS,AJAX的相关问题,跨域问题,如何解决AJAX的跨域问题等等.比较凌乱,请看到这篇博客的盆友见谅,如果我将最近学习的这段内容理清楚了,我会再写一篇易于理解的文章做以巩固. 有时候我们想把一个list或者dict等JSON对象传到网页的JavaScript,用JS进行处理,比如用JS将数据可视化显示到网页上,这里说两种: 1,直接在视图函数中渲染一个list或者dict的内容,和网页其他部分一起显示到网…
其实我一直想不明白HTML5包装个应用层办议作为Socket通过基础目的是为了什么,其实直接支持Socket tcp相对来说更加简单灵活.既然标准已经制定而浏览器也支持那对于我们开发者来说只能用的分.最新版本的WebSocket协议于2011-12其标准规范已经明确下来,所以现在可以根据这标准进行相应的开发.详细参考http://datatracker.ietf.org/doc/rfc6455/?include_text=1 WebSocket协议主要分为两部分,第一部分是连接许可验证和验证后的…
原文:C#操作IIS完整解析 最近在为公司实施做了一个工具,Silverlight部署早已是轻车熟路, 但对于非技术人员来说却很是头疼的一件事,当到现场实施碰到客户情况也各不相同, 急需一个类似系统备份的"一键工具"快速实现应用程序部署和数据库进行关联. 网上关于这方面资源也比较混乱,其中对于IIS的编程影响因素很多,操作技巧上加以细化小结. A:版本问题 这是你在进行编程前必须要要考虑的一个实际问题.因为IIS版本不同对应编程上基本上完全不同方式来进行的.先了解一下Iss版本在操作系…
1. log4j(具体见log4j文档) log4j是一个java系统中用于输出日志信息的工具.log4j可以将日志定义成多种级别:ERROR  /  WARN  /  INFO  /  DEBUG log4j通过获取到一个logger对象来输出日志: val logger = Logger.getLogger("logger名称"); logger.info("日志内容") 所拿到的这些logger对象之间是有"父子"关系的,所有logger都…
mysql交互协议是开发mysql周边组件常用的协议,如JDBC,libmysql等等. 在此我们要认识到mysql交互协议其实是半双工的交互协议,至于为什么,这里就先挖个小坑,以后再填. 在探讨mysql交互协议的格式之前,我们要理清一个小问题,就是mysql交互协议会用到的基本数据类型. 1.整数类型 这里的整数类型可以用来表示mysql数据类型中的整数类型.日期时间类型.DOUBLE.FLOAT类型.比特类型以及枚举类型等等. 所有的mysql整数类型都是小端的,这是网络数据的惯例.即对于…