月度归档 二月 2020

通过文章小助手

Harmony 拓展印度市场,为 DeFi 在金融科技领域的快速发展提供支持

下载黄金原野APP赢取现金红包

加入 Harmony,共创信任、公平新经济体!

Harmony 拓展印度市场,为 DeFi 在金融科技领域的快速发展提供支持

Harmony 拓展印度市场,为 DeFi 在金融科技领域的快速发展提供支持

向全球新兴经济体赋能一直是我们Harmony Protocol的工作核心,通过与IBC Media建立令人兴奋的新伙伴关系,我们希望为印度带来金融科技领域的一些革命性改进。

我们很高兴宣布与领先的创新管理公司 IBC Media 建立合作关系。该公司为技术公司、大企业、政府和投资公司运行技术驱动的开放式创新计划。

据报道,与全球平均水平(64%)相比,印度采用金融科技的速度显著提高(87%)。这可以归功于政府的多项举措以及区块链协议在印度市场上引发的浓厚兴趣,这些协议正在寻求对解决现实世界问题的初创企业并促使企业进行有意义的整合。

Harmony 希望与金融科技初创公司进行合作、投资、孵化和募资,共同解决跨境交易(cross-fi)、贸易融资、商品融资、游戏、虚拟商品和许多其他行业问题。创业者们将能使用 Harmony 的开源平台和工具,并利用 ONE 原生币在各种使用场景中增强落地的能力。

Harmony 还将通过更快、透明安全的产品,在跨境金融领域创建解决方案。在第一阶段,Harmony 将挑选五个合作伙伴 / 开发人员来研究 cross-fi 和去中心化金融(de-fi)应用场景。

“_ 我们很高兴能够在印度推出利用快速且安全的区块链的下一代金融科技产品和用例。Harmony 联合创始人 Sahil Dewan说,“ 鉴于印度的消费者群体善于使用诸如统一支付接口(UPI)和多个数字钱包之类复杂的国家内部支付选项,因此我们看到了该行业增长的巨大潜力,并很高兴与 IBC Media 达成合作,让这次印度之旅不枉此行。_”

Harmony Protocol 在解决目前最大的问题之一——线性扩容方面取得了长足的进步。因此,Harmony 与比特币、以太坊、Monero 和 Ripple 等并列,是全球排名前七的去中心化网络之一。

像 Harmony 这样的协议进入表明了一个事实,即印度的金融科技行业已准备好将诸如区块链之类的新兴技术纳入版图。“_ 我们对 Harmony protocol 将印度视为一个重要的市场感到非常荣幸,并相信它们将成为推动印度金融科技行业发展的重要支持者。IBC Media 首席执行官 Raghu Mohan表示,“ 在 IBC Media,我们对 Harmony 的愿景产生了共鸣,该愿景旨在扩大数十亿人的信任并创造公平新经济。我们很高兴与他们合作,在印度的金融科技领域创造更好的机会并进行创新。尽管我们在金融科技领域的区块链还处于初期阶段,但这一协作将推进区块链领域在未来更广泛地应用。_”

我们很高兴与 IBC Media 合作,对印度的金融科技领域产生影响。请继续关注我们以及时获取更多更新!

欢迎阅读我们 主题演讲、新闻、团队推特、文化价值观、deck、研究、里程碑

欢迎订阅 Harmony 快讯:

https://harmony.one/signup

Harmony 拓展印度市场,为 DeFi 在金融科技领域的快速发展提供支持

欢迎浏览更多内容:

Cere Network 和 Harmony 携手打造去中心化客户管理服务

Harmony CEO Tse 访谈:DeFi 未来可期

扫描二维码,加入 Harmony 中文社区

Harmony 拓展印度市场,为 DeFi 在金融科技领域的快速发展提供支持

加入 Harmony,共创信任、公平新经济体!

记得点个“在看”哟!

来源链接:mp.weixin.qq.com

扫一扫或点击黄金原野下载APP

扫一扫,关注微信公众号

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

粘合剂宣言:让中心化与去中心化相互成就

下载黄金原野APP赢取现金红包

如何让中心化系统帮助构建更好的去中心化系统?我们需要粘合剂技术。

原文标题:《粘合宣言》(The Gluing Manifesto)
撰文: Marco De Rossi
翻译:刘毅

请考虑一个问题:如果没有中心化交易所,今天加密资产总市值会是多少?就我个人看法,也许是现值千分之一,也许是零,所以最好别盼着中心化交易所在地狱中燃烧。加密世界不是平行世界,中心化交易所是加密网络与传统金融网络的桥梁,即下文所说的「粘合剂」。

炒币是区块链目前唯一落地的应用,下一个落地的应用是什么(如果有的话)?我不知道。如果非要猜,我宁愿选「过气」的 STO,而非当下大火的 DeFi,因为 STO 至少还接着地气。作为区块链从业者,我当然相信去中心化技术的潜力,认为它是医治现代金融体系结构化缺陷的良方。但是要发挥去中心化技术的潜力,就别把它跟中心化技术对立起来,倒是不妨多研究各尽所长,融合发展。希望本文给大家带来一点启发。


去中心最大化主义

网络经济生态系统已经基于电子邮件、API、CRM、电子商务、ERP、SQL 数据库、云计算等中心化技术运转了数十年。然后去中心化技术出现,使得任何人都能进行经济交互。你无需认识对方,仅仅需要相信技术,多么神奇!

有的时候我们是如此热爱这个新范式,以至于努力构思所有事务都被去中心化的新平行世界,因为「中心化」是邪恶的,要不惜任何代价地避开。

我们专注于彻底去中心化的方案,这没什么不好,因为排除了全部信任点。但是,这样极端的方式并不总能让我们达到可接受的折衷,即令系统易用、高效并且被广泛参与。

什么方式才能发挥去中心化技术的全部潜力?是基于去中心化和中心化组件密切交互来设计经济系统,让开发者和公司明智而审慎地根据组件是否需要信任以决定如何混合使用。

第三条道路

我们相信中心化保管人技术与去中心化 / 区块链技术的二元对立将很快过去。第三条道路正在显现。

遵循 V 神的经典框架,思考以下这样一类技术:逻辑上、架构上和治理上都是中心化的,就像传统 IT。但是:

  • 没有保管人。虽然中心化但是无法偷你的钱;
  • 任何时候都可替代;
  • 允许失败。因为同时运行着多个系统,可以相互替换,所以失败一个没什么大不了,只要有一个能工作就行。或者简单说:低失败率可接受。

最终这类科技——粘合剂,不需要完美,或者被信任,也不需要容错,只要能工作即可。系统的可靠性不依赖单一组件,而且多个组件的总和,也就是信任最小化的组件,加上多个粘合剂和你认可的中心化技术。

粘合 剂: 综述

简单而言,粘合剂负责从去中心化系统读取签署声明,并转发给中心化系统,或者反过来。以下是几个例子:

  • 中继器:它们不是保管人。它们仅仅转发你的指令(即签署声明)。例如一个 0x 协议的 Mesh 网络节点,或者状态通道的交易中继器,都允许失败、可替代。无需担心,因为你依赖的是网络整体。所以中继器是粘合剂。
  • 预言机连接器:去中心化智能合约预言机依赖多个中心化的预言机连接器,以向智能合约发送描述链下世界状态的签署声明。任意这些预言机连接器都允许失败、可替代并且不是保管人 … 它们都是粘合剂。
  • 瞭望塔:它们读取签署声明(以太坊状态)并且向主链发送交易,发起争议以维护用户的利益。你可以雇佣任意多个瞭望塔,失败一个无伤大雅,可以替代。它们是粘合剂。
  • 加油站网络:它们转发你的签署声明,替你支付交易 Gas。你无需信任单一的中继器,因为可以随时切换到另一个,或者同时使用多个。
  • 零知识证明交易聚合器:在使用零知识证明的二层网络中,任意知晓上一状态的聚合器节点都可以聚合签署声明(交易),创建新状态的零知识证明,并提交给链上的验证智能合约 … 是可替代、可失败的粘合剂。
  • 订单匹配器:你向越多的链下订单匹配器发送订单效果越好,因为找到匹配订单的机会越大。订单匹配器不做保管人,因此允许失败。只要至少一个订单匹配器诚实工作就行。它们可以看作是粘合剂。
  • 状态连接器(这将是大家伙!):基础版本是「如果这样,那么那样」的工具,从区块链读取数据,如果匹配了触发条件,转发给中心化系统——API、电子邮件、数据库、电子商务,即链上-> 传统中心化系统。高级版本的「如果这样,那么那样」的工具支持链上 -> 链上的流程,甚至任意混合的链下中继器 <-> 链上 <-> 传统中心化系统流程。粘合剂的平方!

宣言

我们的宣言:

  1. 如果可替代且不充当保管人,中心化就不邪恶;
  2. 让我们关注去中心化和中心化如何相互成就,而非谁打败谁;
  3. 让我们把中心化和去中心化放进统一的技术图景,而且很快开发者社区将合二为一;
  4. 传统开发者是我们的朋友!让我们花更多时间来开发工具,以帮助非加密开发者无需完全理解也能访问去中心化世界。99% 的 Web 开发者不了解 HTTP 的原理,要扩张以太坊我们需要类似的东西;
  5. 让我们为粘合剂技术正名。它们是高效、安全、可替代 … 而且被需要;
  6. 搞定好过完美,落地好过 100% 去中心化。让我们避开去中心最大化主义;
  7. 让我们干起来!

来源链接:medium.com

扫一扫或点击黄金原野下载APP

扫一扫,关注微信公众号

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%

下载黄金原野APP赢取现金红包

链得得 ChainDD.com
|得区块链者得天下|被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%

“二八定律”又称“关键少数法则”,最重要的往往是那 20% 的少数。而在加密市场中,这种头部的“垄断”效应更加明显。

被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%作者 |Carol 编辑 | 毕彤彤
来源 |PANews (ID:panews2018)
“二八定律”又称“关键少数法则”,最重要的往往是那 20% 的少数。而在加密市场中,这种头部的“垄断”效应更加明显。
根据 CoinMarketCap 2 月 25 日收录的数据,目前,全球共有 5146 种加密货币,总市值超过 2600 亿美元,24 小时名义交易量达到 1669 亿美元。其中,市值排名前 10 的加密货币的总市值和总日交易量占比都超过了 85%。也就是说,大约 0.2% 的加密货币就已经掌握了超过 80% 的市场份额。
在高度集中的市场中,从业者和投资者的目光总是追逐这些头部资产,而忽视数量更加庞大的长尾资产。不少长尾资产因为上架交易所少、交易量低、流动性差,濒临或甚至已经“死亡”。
原本这是竞争市场的自然现象,但是,近期 DeFi 乐高套利事件揭开了低流动性资产的潜在风险,这使得重新审视低流动性资产的现状成为必要。
被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%
1

超 5000 种长尾资产

只占日交易量的 2.08%

根据 CoinMarketCap 的统计,2 月 25 日,全球加密货币市场的总市值约为 2693.66 亿美元,日交易额约为 1669.07 亿美元。PAData 统计了市值排名前 500 的加密货币当日的市值和交易量,结果显示,市值最大的比特币占加密货币总市值的 62.30%,交易量占总交易量的 26.08%。
如果将市值排名前 30 的加密货币视为头部资产,那么头部资产的市值占总市值的比重达到了 92.68%,交易量占总交易量的币种则达到了 95.17%。

被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%

而且无论是市值占比还是交易量占比,随市值排名边际递减的趋势都比较明显。市值排名第 31 至 100 的腰部资产的市值占比仅为 6.16%,交易量占比仅为 5.47%,较头部资产相距甚远,但较市值 100 名之后的长尾资产还领先不少。
根据统计,市值排名 100 名之后的长尾资产的市值占比约为 4.59%,而交易量占比仅为 2.08%,这部分资产的数目达到 5046 种之多。
交易量小、流动性不足是这些长尾资产的主要问题,也是众包网站 Dead Coins 判定代币“死亡”的主要原因之一,其他原因还包括网站荒废、没有节点、社交网络停止等,一般而言,如果代币交易量持续保持在极低的水平,那么网站荒废、节点停工等问题也会相继出现。

被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%

目前,Dead Coins 已经收录了 1867 种“死亡币”,PAData 经过初步清理后(去除重复或异常数据)发现已经明确死亡的代币共有 947 种,大约已经占到长尾资产的 20% 了。
被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%
2

中心化交易所 40% 的

交易对日交易量不足 1 万美元

中心化交易所中有多少长尾资产?这些长尾资产的交易量如何?
PAData 统计了 Binance、Bitfinex、Coinbase、Huobi 和 Kraken 这五家交易量较高的交易所当前的宏观资产流动性现状。
从流通的币种数量和交易对数量来看,Binance 和 Huobi 的资产流通广度更大。Binance 上架了 194 种代币,开通了 637 对交易对,Huobi 上架了 227 种代币,开通了 558 对交易对。而 Coinbase 和 Kraken 上架的资产数量则要少很多,两家交易所分别上架了 25 种资产和 32 种资产,开通了 58 对交易对和 131 个交易对。

被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%

进一步统计后可以看到,在这些流通资产中,长尾资产实际上构成了交易所宏观流动性的主要方面。上架币种数量较多的 Binance、Bitfinex 和 Huobi 都流通着大量的长尾资产,三家交易所的长尾资产数量分别达到 123 种、109 种和 156 种,占比分别为 63.40%、78.98% 和 68.72%。

被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%

总体而言,目前在中心化交易所中交易代币是十分方便的,因为交易所开通的交易对已经十分广泛,而且因为资产重叠,投资者可以有余地挑选交易所交易资产。Binance、Bitfinex、Coinbase、Huobi 和 Kraken 这 5 家交易所上架的资产中共有 30.14% 的资产是重叠的,上架的交易对中则拥有 23.10% 是重叠的。
从交易对的交易量来看,5 家交易所 1753 对交易对中,40.53% 的交易对日交易量都低于 1 万美元(不含空值 NULL),这些低于一万美元的交易对中,涉及长尾资产的交易对占绝大多数。

被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%

比如,Bitfinex 上低于 1 万美元交易量的交易对中有 208 对涉及长尾资产,占所有低于 1 万美元交易对的 74.02%,Huobi 的这一数值也比较高,达到了 78.90%。
长尾资产为交易所的宏观流通性指标撑起了“门面”,但低迷的交易量证明,现在的市场规模还撑不起这个“门面”。
被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%
3

只有 50 种资产在 DEX 上

日交易量超 1 万美元

去中心化交易所(DEX)主要根植于 Ethereum 公链,其上流通的资产以 ERC20 通证和以太坊为主。PAData 统计了 Bancor、IDEX、Kyber、Oasis DEX 和 Uniswap 这五家交易量较大的 DEX 的宏观流动性。
其中,Uniswap 和 IDEX 的币种流动性较好,分别上架了 247 种和 245 种代币,开通了 410 种 250 种交易对。Uniswap 采用的是资金池做市模式,理论上只要有一定资金储备的资产都能够交易,所以其资产交易的可得性和便利性会优于挂单撮合做市模式。

被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%

进一步看各家交易所之间的资产重叠情况,可以发现目前 DEX 流通资产的广度已经较 2019 年中有了很大的发展。目前,5 家交易所流通代币的重叠率约为 23.92%,PAData 在 2019 年 8 月对更大范围的 10 家交易所进行统计时,这一数值仅为 5.7% 左右(参考《DEX 突围战:数说资产流动性和用户基础》。
交易对的重叠率更低一点,5 家交易所目前流通了 835 对交易对,其中 147 对重叠,重叠率 17.60%。这意味着,现在用户使用 DEX 交易会比半年前方便很多。

被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%

根据 Alethio 的统计的 75 种资产的日交易量,以太坊所有 DEX 中交易量最大的代币是 DAI,2 月 25 日统计的日交易量约为 440.98 万美元,其次,cUSDC (Compound 封装)的日交易量也超过了 100 万,约为 103.99 万美元。另外还有 MKR、LINK、WETH、ETH、USDT、sETH、SAI、REP 和 WBTC 等 17 个资产日交易量超过 10 万美元。
交易额超过 1 万美元的资产数量为 50 种,交易额最低的资产是 DNA,不足 3500 美元。另外,这些交易量不足 1 万美元的资产交易者也比较少,多数少于 10 人。

被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%

可以推测,目前虽然 DEX 的流通资产已经比较丰富,但跟中心化交易所一样,低流通量的长尾资产也比较多。
从交易对的角度来看,日交易量低于 1 万美元的交易对占比达到了 83.47%,高于 10 万美元的占比只有 2.51%,高于 100 万美元的只有 0.36%。

被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%

如此看来,整个 DEX 的交易体量尚且不大,而且低流通性的资产占大多数,交易主要集中在个别资产,如有多个 DeFi 应用场景的 DAI、cUSDC、KNC、MKR 和 LINK 等。
根据 zumzoom 的统计,最大的 DEX Uniswap 目前的总资金池已经超过了 2800 万,大约是 Binance 链上比特币资产的 1/77。过去三个月间,sETH 和 MKR 的资金池占比较高,分别达到平均 32.74% 和 15.08%。

被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%

而此前在 Compound、dydx、Kyber、Uniswap 和 bZx 的乐高套利事件中被攻击者利用的 WBTC 资金池只占 2.53%,大约为 67.40 万美元。但这一资金池大小在 Uniswap 中并不算小,处于第 11 位,属于中等规模。如果这一规模大小的资产能被攻击者轻松击破,那么 DEX 中潜在的风险资产范围将涵盖绝大多数资产。
应用之间的乐高组合确实能为 DeFi 注入新的活力,但其中应该考虑资产规模和实际流动性可能为产品创新带来的风险。

被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%往期文章

【 点击图片】即可阅读 被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%【区块链探索之旅】被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%在看点这里被遗忘的加密资产:超 5000 种代币日交易量只占市场 2%

来源链接:mp.weixin.qq.com

扫一扫或点击黄金原野下载APP

扫一扫,关注微信公众号

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

历时两年,微软物联网安全服务 Azure Sphere 全面上线!

下载黄金原野APP赢取现金红包

历时两年,微软物联网安全服务 Azure Sphere 全面上线!

历时两年,微软物联网安全服务 Azure Sphere 正式上线!对此,微软官方表示:「正式商用意味着我们已准备好充分利用微软强大的能力在背后支持每台 Azure Sphere 设备。」

历时两年,微软物联网安全服务 Azure Sphere 全面上线!

作者 | KYLE WIGGERS

译者 | 明明如月

出品 | CSDN (ID:CSDNnews)

据 IDC 预计,2025 年全球将有近 416 亿物联网设备,为了更好地保护这些海量设备的安全,微软 Azure Sphere 应运而生,于 2018 年 4 月官宣。在经过近两年的长时间预览版后,微软于近期正式宣告 Azure Sphere 开启商用。

符合条件的客户可以在未来几天注册。Azure Sphere 一个芯片的一次性费用 (不到 8.65 美元)包括了对所有 Sphere 组件的访问,以及芯片生命周期内的操作系统更新,不会再收取额外的费用。另外,据微软 Azure IoT 总监 Sam George 表示,开发者可以授权 Visual Studio 和微软的 Azure 物联网服务来更加高效地开发 Sphere 应用。

George 补充说:“我们生活在一个联系日益紧密的世界。”他去年指出,从 2018 年到 2019 年,微软的 Azure 物联网即服务(Azure IoT-as-a-service,SaaS)套件同比增长了近 150% ,增加了 100 多项新功能。“不管你在物联网领域发展水平如何,我们都将致力于为提供一个可信赖、易于使用的平台,让我们的客户和合作伙伴能够建立无缝、智能和安全的解决方案。”

历时两年,微软物联网安全服务 Azure Sphere 全面上线!

Azure Sphere

对于外行来说,Azure Sphere 是一个高级的软件即服务(SaaS)平台,具有跨行业物联网设备的内置通信特性。它包括围绕安全硅芯片构建的集成硬件;基于 Linux 的自定义操作系统 Azure Sphere OS;以及基于云的服务 Azure Sphere 安全服务,可提供提供持续的安全保障。

Azure Sphere 操作系统运行在 Azure Sphere 认证的芯片上,并连接到 Azure Sphere 安全服务,该系统旨在为物联网应用开发提供一个平台,包括高级应用和实时应用。这是第一个运行 Linux 内核的操作系统,也是微软公开发布的第二个 Linux 类 Unix 系统,有趣的是,另一个是已经使用了几十年并且已经停止维护的 Xenix。

Azure Sphere 认证芯片和硬件支持两种实现:greenfield 和 brownfield。Greenfield 涉及使用联发科、NXP 和高通生产或即将生产的支持(可选支持蜂窝)芯片设计和构建物联网设备。至于 brownfield,它需要一个 Azure Sphere “守护”设备,大部分由 Avnet 和 AI-Link 生产,可以将现有的硬件连接到互联网。

Azure Sphere 硬件有多种配置,包括 Wi-Fi 模块、开发套件和开发板(来自 Seeed Studios 和 USI 等合作伙伴),以及前面提到的 guardian。守护模块 (不直接连接网络)的一个外设,内置 Azure Sphere 认证芯片,运行 Azure Sphere 系统和 Azure Sphere 安全服务,两者都可以通过 Wi-Fi 或以太网连接进行配置。

历时两年,微软物联网安全服务 Azure Sphere 全面上线!

安全性

Azure Sphere 的一个核心组件是上面提到的安全服务,这是一个基于云的服务,支持对 Azure Sphere 认证的芯片进行维护、更新和控制。它在设备和互联网以及各种辅助云服务之间建立连接,确保安全启动、认证设备身份、完整性和信任根,同时确保设备运行经过审核的代码库。Azure Sphere 安全服务还提供了一个通道,Microsoft 可通过该通道自动在已部署的设备上下载和安装 Azure Sphere 系统更新和应用程序更新。

在硬件层面,有“岩体安全子系统”(Pluton Security Subsystem)作为补充。它通过一系列技术实现 Azure Sphere 的信任根(RoT):

  • 自定义设计的安全处理器核心

  • 加密引擎

  • 一种基于硬件的随机数发生器

  • 公钥和私钥生成器

  • 非对称和对称加密

  • 安全启动的椭圆曲线数字签名算法验证

  • 经过测量的硅片引导,可通过云服务支持远程认证

  • 各种篡改对策

历时两年,微软物联网安全服务 Azure Sphere 全面上线!

应用程序开发

在 Azure Sphere 操作系统上的应用程序开发相对简单。通过使用 Linux 或 Windows 的 Azure Sphere SDK 以及 GitHub 上开源的示例和解决方案,开发人员可以在 Azure Sphere 认证的芯片上部署利用外围设备的应用程序。这些受到质疑的应用程序运行在主处理器核心上,可以访问外网,或者作为实时应用程序运行在功能较弱的核心上,具有实时功能的应用程序可以运行在裸机上,也可以运行在实时操作系统上,它们可以通过与 Azure Sphere 操作系统更新相同的机制发布到 Azure Sphere 设备上。

历时两年,微软物联网安全服务 Azure Sphere 全面上线!

当然,开发并不局限于使用 Azure。这些芯片可以与其他公共的、私有的和混合的云环境一起工作,包括 AWS 和 Google Cloud,这无疑吸引了 Azure Sphere 的早期用户。

以下是这些用户的使用案例:

  • 微软数据中心团队首次利用 Azure Sphere 卫星模块连接设备和系统,并构建了新的系统。

  • Qiio 开发了一个基于 Azure sphere 的物联网部署解决方案,它结合了硬件、蜂窝连接和云服务。

  • Vitamix 将 Azure Sphere 集成到其物联网模块中,以改造这些模块实现对 Vitamix 搅拌机的远程编程。

  • Elettrone 正在建设一个 Azure Sphere 能源监测解决方案,以减少商业和住宅物业的浪费。

  • 星巴克与微软合作,使用卫报模块在其全球门店的现有设备上部署 Azure Sphere。

  • Purell 背后的品牌 Gojo 计划将 Azure Sphere 与运动探测器和医疗机构中的连接分配器整合在一起。

  • 为汽车行业和其他行业开发电缆系统的 Leoni 公司,使用集成传感器的 Azure Sphere 积极监测电缆状况,创建智能和连接的电缆系统。

历时两年,微软物联网安全服务 Azure Sphere 全面上线!

微软在物联网方面的投入

2018 年,微软承诺在 2022 年之前投入 50 亿美元用于智能边缘创新(比 2018 年的 15 亿美元有所上升),并承诺将其物联网合作伙伴的生态系统扩大到 10000 多个。它在 Azure 物联网中心和物联网即插即用中取得了成果。前者是一项云服务,能够让客户快速提供和部署物联网应用程序,后者则提供能够与一系列现成解决方案协同工作的设备。微软的投资也支持了 Azure Sphere;以及统一的云和边缘安全套件 Azure 安全中心 ; 还有将云智能直接运行在独立的物联网设备上的 Azure IoT Edge。

微软和谷歌的云物联网(在包括连接,处理,存储和分析边缘设备数据的一系列工具)方面存在竞争关系。亚马逊网络服务的物联网设备管理也不甘示弱,它跟踪、监控和管理运行一系列操作系统和软件的设备群。百度的 OpenEdge 提供了一系列的物联网边缘计算板块和基于云的管理套件,用于管理边缘节点、边缘应用程序和资源,如认证、密码和程序代码。

微软最近收购了物联网系统公司 Express Logic。Express Logic 总部位于加利福尼亚州圣地亚哥,为物联网和微控制器驱动的边缘设备开发实时操作系统 (RTOS)。另外,它还与大疆、 SAP、 PTC、高通和卡内基梅隆大学等公司和单位合作开发物联网和边缘应用程序。

英文:Microsoft Azure Sphere launches in general availability

链接:https://venturebeat.com/2020/02/24/microsoft-azure-sphere-launches-in-general-availability/

作者:KYLE WIGGERS

译者:明明如月,知名互联网公司 Java 高级开发工程师,CSDN 博客专家。

本文由 CSDN 翻译,转载请注明来源出处。

【End】

《原力计划【第二季】- 学习力挑战》

正式开始

即日起至 3 月 21 日

千万流量支持原创作者

更有专属【勋章】等你来挑战

历时两年,微软物联网安全服务 Azure Sphere 全面上线!推荐阅读
微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条高通发布 5G 基带芯片 X60:5nm 制程,2021 年上市先马后看!详解线性回归、朴素贝叶斯、随机森林在 R 和 Python 中的实现应用!(附代码)

近一半程序员单身、年薪低于 15 万,程序员扎心现状大调查!

看完就能独自把集群搭起来!Hadoop HDFS 完全分布式环境搭建以及技术详解

36 万美元套利!3 个步骤揭秘黑客 DeFi 闪电贷操盘全过程

历时两年,微软物联网安全服务 Azure Sphere 全面上线!你点的每一个在看,我认真当成了喜欢

来源链接:mp.weixin.qq.com

扫一扫或点击黄金原野下载APP

扫一扫,关注微信公众号

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

下载黄金原野APP赢取现金红包

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

官方版的 GitHub CLI 终于问世了,一经开源便火速冲上了 GitHub Trending 榜 TOP1,接下来,就让我们一起来看,如何在短短 5 分钟便可迅速上手玩转 CLI!

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

作者 | Nabil Nalakath 译者 | 弯月,责编 | 唐小引头图 | CSDN
出品 | CSDN (ID:CSDNnews)

多年来,作为全球最受欢迎的代码托管平台 GitHub 竟然一直没有提供官方的 CLI 工具。毕竟 GitHub 是开放源代码项目中最常用的平台,难免让人感到惊讶。

但是成为开源生态系统一部分的优势在于,无论有无官方支持,社区都会在需要时构建相应的工具,GitHub 就有相同的经历。

Hub 是最受欢迎的非官方 GitHub CLI。据其网站表示:“Hub 是命令行 Git 的扩展,可帮助您完成 GitHub 的日常工作,而无需离开终端。”

我不得不承认,这个工具已经兑现了承诺。然而,最近 GitHub 一直为发布官方工具和产品做努力,而且他们的进展良好,这还要多亏了微软收购带来的巨额资金和方向调整。

之前,GitHub 发布了一个带有 GUI 的桌面应用程序,而且正式的命令行工具也提上了日程。如今,官方版的 GitHub CLI 终于问世了。

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

GitHub CLI

GitHub CLI 是官方版的命令行工具,目前处于 beta 测试阶段。

虽然,这个工具还没有正式发布,但鉴于开发人员和 GitHub 的高度关注,我不得不说 beta 版的发行指日可待。下面就让我们来了解一下这个工具以及如何在日常工作中使用。

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

安装

Github CLI 的安装非常简单明了。

对于 macOS 上:

    brew install github/gh/gh 

对于 Windows,有三种安装方式,其中之一如下所示:

    scoop bucket add github-gh https://github.com/cli/scoop-gh.git       scoop install gh 

你也可以通过 Chocolately 获得,只需运行:

    choco install gh 

最后,如果你需要 MSI 安装程序文件,则可以前往发行页面(https://github.com/cli/cli/releases/tag/v0.5.7),下载所需的文件。

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

命令

截止到目前为止,GitHub 已发布了 Beta 版的 CLI,其中包含两个主要命令:issue 和 pull request。因为这两个是开源社区中开发人员最常用的命令。

虽然 hub 支持更多命令,但 hub 只是 Git 的代理,而 gh 是独立的工具。

由于是官方的工具,所以我们希望可以看到更多的命令,但首先让我们了解一下现有的命令。CLI 中所有的命令均以 gh 开头。

Issue

issue 命令用于处理 GitHub 上与 issue 相关的所有事宜。issue 有四个子命令:create、list、status 和 view。具体语法是:gh issue < 子命令 >。

下面让我们来看看这四个命令:

*create:从命令行创建 issue 非常简单。你可以直接使用带有 title 和 body 标签的命令:

    gh issue create --title "Issue title" --body "Issue body"   

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

也可以通过交互的方式输入详细信息。它还提供了选项可以直接提交 issue,也可以在浏览器中打开链接,供你进行代码审查和提交问题。

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

*list:list 命令用于列出代码库中当前的 issue。命令为:gh issue list。它还有过滤器,你可以根据 assignee、label、current state (open、closed)等条件过滤列表。

示例如下:

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

不带过滤的 issue 列表

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

closed 的 issue 列表

*status:这个命令仅显示与当前用户有关的 issue 的状态。命令很简单:gh issue status。

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

显示相关 issue 的状态

*view:这个命令是在浏览器中快速打开问题的快捷方式。你只需输入命令,然后输入 issue 的编号,即可在浏览器中打开这个 issue,例如:gh issue view 6。

PR

PR 是 Pull Request 的缩写,它是 CLI 中的第二大主要命令。

你可以利用 PR 直接从命令行处理 GitHub 拉取请求,它也有四个子命令:create、list、status、view,还有一个附加的子命令:checkout。语法为:gh pr < 子命令 >。

*checkout:该命令用于从 Git 中检出拉取请求。你可以通过拉取请求编号或 URL 检出。用法为:gh pr checkout { | }。该命令可以立即从拉取请求中检出到新分支。

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

pr checkout

*create:顾名思义,用于从 CLI 创建拉取请求。用法为:gh pr create [flags]。该命令有很多标志,例如 title、body、branch 等。你可以在 pr 中添加详细信息并选择要与之合并的分支。它还允许使用以下标志输入信息:

    gh pr create --title "Pull request title" --body "Pull request body"    

或者,你也可以使用交互式 CLI。它还提供了选项可以直接提交问题,也可以在浏览器中打开其链接,供你进行代码审查和提交。

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

从命令行创建 pr

*list:该命令可以列出代码库当前的拉取请求。命令为:gh pr list。它还有过滤器,你可以根据 assignee、label、current state (open、closed)等条件过滤列表。示例如下。

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

列出代码库中的 pr

*status:这个命令仅显示与当前用户有关的 issue 的状态。具体命令为:gh pr status。它可以按照各个条件显示这些信息:Current branch、Created by you 以及 Requesting a code review from you。

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

pr 状态

*view:这个命令是在浏览器中快速打开 pr 的快捷方式。你只需输入命令,然后输入 pr 编号,即可在浏览器中打开这个 issue,例如:gh pr view 6。此外,你也可以使用–preview 标志在浏览器中快速预览。

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!

总结

以上,我们快速浏览了 GitHub 官方 CLI 的命令,更多信息请参阅官方页面的详细文档。相信正式发布时,还会添加更多命令。

GitHub CLI 官方地址:https://cli.github.com/

英文:The Official GitHub CLI Is Here

链接:https://medium.com/better-programming/the-official-github-cli-is-here-9fb7276e2e15

作者:Nabil Nalakath

译者:弯月

【End】

《原力计划【第二季】- 学习力挑战》

正式开始

即日起至 3 月 21 日

千万流量支持原创作者

更有专属【勋章】等你来挑战

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!推荐阅读
微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条高通发布 5G 基带芯片 X60:5nm 制程,2021 年上市先马后看!详解线性回归、朴素贝叶斯、随机森林在 R 和 Python 中的实现应用!(附代码)

近一半程序员单身、年薪低于 15 万,程序员扎心现状大调查!

看完就能独自把集群搭起来!Hadoop HDFS 完全分布式环境搭建以及技术详解

36 万美元套利!3 个步骤揭秘黑客 DeFi 闪电贷操盘全过程

GitHub 开源官方命令行工具登顶 TOP1,5 分钟极速上手!你点的每一个在看,我认真当成了喜欢

来源链接:mp.weixin.qq.com

扫一扫或点击黄金原野下载APP

扫一扫,关注微信公众号

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

被高估了的测试驱动开发?

下载黄金原野APP赢取现金红包

被高估了的测试驱动开发?

测试驱动开发(TDD)始于上世纪 90 年代,时至今时今日,依然只有少数的开发者在践行着。本文作者从软件开发者的角度,又一次帮助我们定义了测试驱动开发,解答了众多开发着对 TDD 常见的谬误。

被高估了的测试驱动开发?

作者 | Tylor Borgeson,已获作者翻译授权译者 | 罗昭成,责编 | 唐小引头图 | CSDN 下载自东方 IC
出品 | CSDN (ID:CSDNnews)

以下为译文:

被高估了的测试驱动开发?

写在前面

这是我「流行软件开发实践」系列文章中的第二部分,在本系列文章中,我计划包含软件工程师通过提升开发流程和实践来改善软件开发的一系列方法。我曾在 ThoughtWorks 担任软件顾问,现在我在德国一家大型的零售公司工作,这些方法都是我在职业生涯中学习并实践验证过的。

被高估了的测试驱动开发?

我曾和一位客户的开发人员讨论过有关软件开发方面的问题。我们的讨论有点过头,他提到,作为一个软件开发者非常地幸运,因为“我们可以欺骗公司为我们的基础工作付出可观的收入”……我认为,不论你的编程水平如何,你也不能如此贬低众多软件开发工程师。

我们聊得如丝般顺滑,讨论逐渐深入到敏捷软件开发实践上。对于敏捷开发中提到的方法,他们表示可以进行尝试,用于改进当前的工作方式,但是,当我提到测试驱动开发的时候,他们却都觉得:

测试驱动开发名不副实。

听到他们的这个评论,我感到非常震惊。同时,他们也让我意识到,在很多人心中,测试驱动开发仅仅是敏捷开发实践中的一种方式,在更多人心里,它更像是海市蜃楼,看起来很美,用起来却不过如此。为了让更多的人了解测试驱动开发,我想用本篇文章告诉大家到底什么是测试驱动开发。

被高估了的测试驱动开发?

首先,我来定义一下什么是测试驱动开发(TDD)。

顾名思义,TDD 是一种软件开发的策略,它通过写测试来引导开发流程。Kent Beck 2003 年在他的《测试驱动开发》一书中提到了这个概念(译者注:Kent Beck,美国著名软件工程师与作家,在软件工程方面有很大贡献。他是 Smalltalk 软件的开发者,设计模式的先驱,测试驱动开发的支持者,也是极限编程的创始者之一。),实现测试驱动开发主要遵循以下三个步骤:

  • 为你要写的一小部分功能编写一个失败的测试用例。

  • 实现你的功能逻辑,让你的测试用例通过。

  • 重构代码,保证代码的结构与可读性。

这个流程可以简化为“红色,绿色,重构”。

下面,我将用测试驱动开发的模式,用 Python 实现勾股定理中斜边值的计算。

被高估了的测试驱动开发?

先写测试代码,方法的实现先不用管

被高估了的测试驱动开发?

运行测试代码,出现红色的错误

被高估了的测试驱动开发?

实现代码逻辑,让测试代码通过

被高估了的测试驱动开发?

重构代码,使代码逻辑更优雅

今年已经是 2020 年了,17 年过去了,对于很多开发者而言,测试驱动开发带来的收益依然没有定论,因此,大多数开发人员都不曾使用过 TDD 。

一直以来,我都热衷于向我的朋友们推荐使用 TDD ,但依然有很多人选择拒绝,当我问到为什么时,以下是我听到的最多的几个回答:

我们有测试团队,写测试是他们的工作。

在写测试用例的时候,需要 mock 上下文对象,所以需要花费更多的时间和精力。

并不能给我带来很大的收益。

它太慢了。

下面,我来分析一下这几个回答。

被高估了的测试驱动开发?

场景 1:”我们有测试团队,写测试是他们的工作“

我一直觉得,谁写的代码,谁就应该要保证它能正常运行,所以我每次想到这个答案我都会觉得好笑。如果你觉得只有写逻辑代码才是你的工作,那么你的能力将会停滞不前。

每一个程序员写的代码应该都要具备以下几个性质:

  • 根据业务需求选择使用正确的技术栈

  • 代码容易理解

  • 可测试

  • 可扩展

  • 简单

我认为,把开发者能做的单元测试交给测试部门来做,是非常不明智的行为。测试部门有更多更重要的事情要做,而不是浪费时间来做黑盒测试。

被高估了的测试驱动开发?

场景 2:”在写测试用例的时候,需要 mock 一些上下文对象“

你们的想法和无奈感,我都能理解,曾经的我也和你们一样。在你的面前有一个方法,这个方法有三个不同参数,并且每一个参数都是一个对象,同时,它们的属性也不为空。现在你需要对这个方法进行测试,要满足测试条件,需要进行大量的 Mock,这会导致为了测试一个方法而写大量的额外代码。

现在,我已经能够很好的处理这个问题,并且我认为做这些事情都是值得的。

每当我思考如何降低写测试的成本时,脑海里就会萦绕着这两样东西,分别是 SOLID (译者注:S 指单一职责原则,O 开闭原则,L 里氏替换原则,I 接口隔离原则,D 依赖倒置原则)和测试金字塔。

需要强调的是,S —— 单一职责原则,这个原则告诉我们,一个类或者一个方法都只能做一件事情,这样可以防止它们对系统的其他部分产生副作用。

我知道,公司中的代码逻辑肯定不会像两个整数相加那么简单,但是,如果我们可以让这些方法的职责变得单一,那么写测试也就会变得非常容易。

被高估了的测试驱动开发?

测试金子塔,来源:https://martinfowler.com/articles/practical-test-pyramid.html

这个测试金字塔通常用来衡量不同测试类型的优先级。

UI 测试和服务测试会耗费大量的时间,成本很高,单元测试却可以毫秒级地运行,所以一个系统应该让它具有更多的单元测试,少一点服务测试和 UI 测试。这样做和 DevOps 的目标一致,可以增加整个系统开发过程中的反馈循环。

单元测试要求新的代码与系统中原有的代码尽可能少的耦合在一起,这样能更容易编写单元测试的代码。

测试驱动开发是基于单元测试的一种开发模式。

当然,说起来比做起来容易得多。对于各种类型测试来说,都会有成本,单元测试也不例外。如果有一天,你发现你写单元测试的成本增加了很多,你可以扪心自问,是否有以下两个问题:

  • 当前的测试是否在单元测试范围内,是否需要把升级到服务测试的范围?

  • 你的代码结构是否合理,你的类和方法是否单一职责?

如果你在编写单元测试代码时,都需要不断的投入大量成本,这就意味着,你的代码存在一些问题,你需要对其进行一些重构,让代码结构更清晰。

被高估了的测试驱动开发?

场景 3:”并不能给我带来很大的收益“

很搞笑的是,大多数这么说的人,都是没有真正使用测试驱动开发模式的人。纸上得来终觉浅,绝知此事要躬行。

下面,我将介绍使用 TDD 带来的两大好处:

第一个比较明显,根据 TDD 的定义,在编写真实的逻辑代码之前,都需要写先测试,以这种方式产出的代码都是自测试的。正如 Martin Fowler (译者注:Martin Fowler,英国著名软件工程师,也是一个软件开发方面的著作者和国际知名演说家,专注于面向对象分析与设计,统一建模语言,领域建模,以及敏捷软件开发方法,包括极限编程。)所说:

如果你的代码是自测试的,那么只要你针对代码运行一系列自动化测试,等到通过后,你就可以保证你的代码不会出现任何实质的缺陷。

换句话说,你的代码可以按照你在测试代码中定义的流程正常运行。

单元测试非常的有用,它能让你对你的代码充满信心。在重构的时候,它能在第一时间发现重构造成的问题,并且,并且单元测试也可以让你知道当前系统中是否存在 Bug 。

自测试的代码可以让整个团队在开发和集成的过程中受益。

使用 TDD 另一个好处是,它能让开发人员在编写逻辑代码之前,仔细思考要编写什么样的代码,以及如何去编写代码。在编码之前的思考,能够让开发者真正深入业务需求,考虑可能存在的边界问题和可能存在的挑战,这个过程虽然费时而且很痛苦,但它并不是浪费开发人员的精力。不仅如此,先写测试,还会促使开发人员从一开始写代码的时候,就考虑系统的设计与架构,这样可以大大地提高系统扩展性。

被高估了的测试驱动开发?

场景 4:”它太慢了“

以我的经验来看,有这种想法的人,大多都是那些尝试使用 TDD 的人,然而他们去使用的是以前开发模式,先写代码,最后在来编写测试。这也是大多数开发人员不能坚持执行 TDD 最常见的原因之一。

我深深地理解这些开发者的想法,在编写代码之前,先进行思考,然后花时间去写测试代码,比起不写测试,确实要花费更多的时间。有时候,模拟 mock 出场景有效的数据不仅比较麻烦,也会让人感到很沮丧。

虽然我说很多 TDD 的优点,但是这无济于事,很多公司的业务部门都将开发交付的时间作为衡量标准,整个团队都在拼尽全力开发新的需求。

在敏捷开发中,衡量软件开发有四个关键指标(我经常会参考这些指标),其中两个为变更失败率和部署频率。正如我上面所说,假设系统使用 TDD 构建,当你提交代码,整个团队都会知道代码的修改是否会导致系统其它功能崩溃,同时还能提高 Bug 被发现的速度。单元测试的局部性,可以让开发人员可以快速的找到问题出现的原因。如此往复,导致功能出现异常的可能性会越来越小,从而降低变更失败率。

代码通过单元测试,也可以让我们对软件功能的鲁棒性有更强的信心,整个团队都可以通过单元测试结果来决定是否可以部署,任何人都可以按需进行部署。

《凤凰项目》中列出了四种工作类型,其中一种是“计划外工作或救火工作”。这类工作通常是由于错误引起的,开发者必须停止手上的工作去优先处理。自测试的代码可以最大的程度上减少这种错误,这就意味着,它能帮助我们最小化“计划外工作或救火工作”,还能最大限度的提高开发人员的满意度。快乐的开发就是好的开发。

当开发者不用担心线上会出现问题的时候,他们能够更加聚焦在新功能的开发上。他们在写代码之前,有考虑过如何写代码,便能够写出符合 SOLID 原则的代码。在开发中会不断地对代码进行重构,技术债也会降到最低。团队对代码质量充满信心,能随时进行上线部署,这会使整个团队跑得更快。

被高估了的测试驱动开发?

万事开头难,和其他工具和实践一样,测试驱动开发在刚开始的时候,可能会让人很难受,并且会让你的开发效率降低,但是,正如持续交付之父 Jez Humble 所说:

提前并频繁地做让你感到痛苦的事。

现在去开始你的测试驱动开发之旅,直到它让你觉得舒服为止。谢谢你的阅读。

引用:

Continuous Integration and Deployment:https://levelup.gitconnected.com/heres-why-continuous-integration-and-deployment-is-so-important-to-the-software-development-c0caeead5881

Accelerate, The Phoenix Project, and DevOps:https://medium.com/swlh/software-development-practices-as-recommended-by-gene-kim-c6f6e952309f

SOLID Principles:https://en.wikipedia.org/wiki/SOLID

“You build it, you run it”:https://simplicable.com/new/you-build-it-you-run-it

Martin Fowler — Self Testing Code:https://martinfowler.com/bliki/SelfTestingCode.html

Martin Fowler — Testing Pyramid:https://martinfowler.com/articles/practical-test-pyramid.html

原文:“Test Driven Development is overrated”

链接:https://levelup.gitconnected.com/test-driven-development-is-overrated-ad9f0491c11d

作者:Tylor Borgeson,全栈软件开发者,对机器学习、AI、基础架构、DevOps 及敏捷等拥有强烈兴趣。

译者:罗昭成

【End】

《原力计划【第二季】- 学习力挑战》

正式开始

即日起至 3 月 21 日

千万流量支持原创作者

更有专属【勋章】等你来挑战

被高估了的测试驱动开发?推荐阅读
微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条高通发布 5G 基带芯片 X60:5nm 制程,2021 年上市先马后看!详解线性回归、朴素贝叶斯、随机森林在 R 和 Python 中的实现应用!(附代码)

近一半程序员单身、年薪低于 15 万,程序员扎心现状大调查!

看完就能独自把集群搭起来!Hadoop HDFS 完全分布式环境搭建以及技术详解

36 万美元套利!3 个步骤揭秘黑客 DeFi 闪电贷操盘全过程

被高估了的测试驱动开发?你点的每一个在看,我认真当成了喜欢

来源链接:mp.weixin.qq.com

扫一扫或点击黄金原野下载APP

扫一扫,关注微信公众号

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

Origin 起源协议 2020 年 2 月月报

下载黄金原野APP赢取现金红包

欢迎阅读 Origin 2 月的月报。我们渴望听到社区的反馈和建议。大家希望从 Origin 得到任何请求,请发送邮件到 support@originprotocol.com,资讯信息请发送到 info@originprotocol.com

摘要

以下是 Origin 团队二月在产品和商业上面取得的一些里程碑

  • 二月初,我们的市场应用程序已集成到三星区块链钱包中。为将来数亿用户使用 Origin 迈出了坚实的一步。

  • 最近,OGN 上线韩国两家交易所 Coinone 和 GOPAX。这使得韩元成为首个 OGN 法币通道。

我们还继续在美国、中国、韩国、俄罗斯、越南、印度尼西亚和世界其他地方发展社区,全面增加社区成员数量。

产品和 技术

2 月初,Originmarketplace 应用在三星区块链钱包中发布。三星进军区块链不仅对 Origin 来说是一个巨大的进步,对我们整个蓬勃发展的行业来说也是如此。

随着三星越来越多地将内置钱包管理和 DApp 发现功能的手机部署到其现有的数亿用户群中,它将自己定位为将加密货币和相关技术引入主流的最重要参与者之一。

这个月的奖励活动集中在推动 Origin 商店的销售上面,这些商店是建立在 origin 平台的去中心化电商。

我们已经在平台的新功能方面取得了进展,准备在未来几个月推出新的内部和第三方电商应用。

Origin 起源协议 2020 年 2 月月报

目前三星在安卓市场拥有超过 40% 的份额,我们非常期待成为他们区块链钱包中最早的 dapp 之一。我们和这家科技巨头一样,都希望将加密货币和区块链应用的真实用例交付给世界各地。

上线新交易所

2 月 18 日,OGN 同时上线 GOPAX 和 Coinone 两家韩国最具信誉的交易所之一,并上线了韩元法币交易对。韩国是全球最大、最活跃的区块链和加密货币技术开发和交易市场之一,这是 Origin 的一个重要里程碑,因为我们希望 Origin 在韩国推动更多的应用和合作。

Origin 起源协议 2020 年 2 月月报

社区及业务发展

推动 Origin 理念在全球的落地是我们的焦点,一直在和欧美和亚洲的伙伴们积极合作。

最近中国团队与 MakerDAO 团队合作进行了一次线上活动。Maker 团队在 DeFi 和去中心化的稳定币等方面,已经取得了具有时代影响力的成果。

我们现在也刚刚开始把注意力转向日本。随着最近日本市场的逐渐开放,我们很高兴能与当地的合作伙伴和监管机构合作,今年某个时候 OGN 会在日本也得到应用。

这个月我们还用 Atomic Wallet 和 Coin98 进行了 AMA。

Origin 视频

来自 Gumi Crypto 的 Ray Zhang 讨论了他的日本 VC/ Crypto 基金支持 Origin 的原因。

KryptoSeoul 和 BUIDL 公司的 Erica Kang 最近从韩国市场调到了越南,以抓住快速增长的区块链机会。她是我们项目的长期支持者,我们很高兴有这个盟友帮助我们,把 Origin 推广到重要的东南亚地区。

通证经济

OGN 目前的流通量是 2800 万,由于一月份参与 Origin 奖励活动的用户人数众多,实际发放的奖励略高于预期。

Origin 起源协议 2020 年 2 月月报

2 月 Origin 奖励活动的规模将小得多,3 月初到 3 月中旬将增加 1.5 万个 OGN 流通。这还不到下个月币安研究报告中最初模型增长的 5%。

在接下来的几个月里,我们将进一步探索通证经济,以在可预见的未来降低实际供应与模拟供应的比例。

———————Origin 起源协议 2020 年 2 月月报———————-

关于 ORIGIN 起源协议:

Origin Protocol 起源协议是个基于以太坊和 IPFS 的去中心化共享经济协议。旨在让企业和开发商可以快速建立自己的去中心化应用,真正实现点对点交易,创建更公开平等的市场。买家和卖家可以在分散式的开放网络上进行交易,跳过传统中间商创建和预订服务及商品。

了解更多 ORIGIN 起源协议的信息:

官网 : https://www.originprotocol.com

微信公众号:originprotocol

币乎 : https://bihu.com/people/1221913156

优酷:https://i.youku.com/originprotocol

哔哩哔哩:https://space.bilibili.com/489459146

电邮 : anna@originprotocol.com

海外社交媒体:

Telegram: t.me/originprotocol

Discord: originprotocol.com/discord

Facebook: facebook.com/originprotocol

Instagram: instagram.com/originprotocol

Twitter: twitter.com/originprotocol

Reddit: reddit.com/r/originprotocol/

Youtube: youtube.com/c/originprotocol

来源链接:mp.weixin.qq.com

扫一扫或点击黄金原野下载APP

扫一扫,关注微信公众号

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

看完这篇 HTTP,跟面试官扯皮就没问题了

下载黄金原野APP赢取现金红包

看完这篇 HTTP,跟面试官扯皮就没问题了

看完这篇 HTTP,跟面试官扯皮就没问题了

作者 | cxuan
责编 | 屠敏头图 | CSDN 下载自视觉中国

我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。

最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每次一提这个就落一通批评:xxx 上 xxx 什 xxxx 么 xxxx 网 xxxx 看 xxxx 你 xxxx 考 xxxx 的 xxxx 那 xxxx 点 xxxx 分。虽然我家里没有上网,但是此时互联网已经在高速发展了,HTTP 就是高速发展的一个产物。

看完这篇 HTTP,跟面试官扯皮就没问题了

认识 HTTP

首先你听的最多的应该就是 HTTP 是一种 超文本传输协议 (Hypertext Transfer Protocol),这你一定能说出来,但是这样还不够,假如你是大厂面试官,这不可能是他想要的最终结果,我们在面试的时候往往把自己知道的尽可能多的说出来,才有和面试官谈价钱的资本。那么什么是超文本传输协议?

超文本传输协议可以进行文字分割:超文本(Hypertext)、传输(Transfer)、协议(Protocol),它们之间的关系如下

看完这篇 HTTP,跟面试官扯皮就没问题了

按照范围的大小 协议 > 传输 > 超文本。下面就分别对这三个名次做一个解释。

什么是超文本

在互联网早期的时候,我们输入的信息只能保存在本地,无法和其他电脑进行交互。我们保存的信息通常都以文本即简单字符的形式存在,文本是一种能够被计算机解析的有意义的二进制数据包。而随着互联网的高速发展,两台电脑之间能够进行数据的传输后,人们不满足只能在两台电脑之间传输文字,还想要传输图片、音频、视频,甚至点击文字或图片能够进行超链接的跳转,那么文本的语义就被扩大了,这种语义扩大后的文本就被称为超文本 (Hypertext)。

什么是传输

那么我们上面说到,两台计算机之间会形成互联关系进行通信,我们存储的超文本会被解析成为二进制数据包,由传输载体(例如同轴电缆,电话线,光缆)负责把二进制数据包由计算机终端传输到另一个终端的过程(对终端的详细解释可以参考《你说你懂互联网,那这些你知道么?》这篇文章)称为传输 (transfer)。

通常我们把传输数据包的一方称为请求方,把接到二进制数据包的一方称为应答方。请求方和应答方可以进行互换,请求方也可以作为应答方接受数据,应答方也可以作为请求方请求数据,它们之间的关系如下

看完这篇 HTTP,跟面试官扯皮就没问题了

如图所示,A 和 B 是两个不同的端系统,它们之间可以作为信息交换的载体存在,刚开始的时候是 A 作为请求方请求与 B 交换信息,B 作为响应的一方提供信息;随着时间的推移,B 也可以作为请求方请求 A 交换信息,那么 A 也可以作为响应方响应 B 请求的信息。

什么是协议

协议这个名词不仅局限于互联网范畴,也体现在日常生活中,比如情侣双方约定好在哪个地点吃饭,这个约定也是一种协议,比如你应聘成功了,企业会和你签订劳动合同,这种双方的雇佣关系也是一种 协议。注意自己一个人对自己的约定不能成为协议,协议的前提条件必须是多人约定。

那么网络协议是什么呢?

网络协议就是网络中 (包括互联网) 传递、管理信息的一些规范。如同人与人之间相互交流是需要遵循一定的规矩一样,计算机之间的相互通信需要共同遵守一定的规则,这些规则就称为网络协议。

没有网络协议的互联网是混乱的,就和人类社会一样,人不能想怎么样就怎么样,你的行为约束是受到法律的约束的;那么互联网中的端系统也不能自己想发什么发什么,也是需要受到通信协议约束的。

那么我们就可以总结一下,什么是 HTTP?可以用下面这个经典的总结回答一下:HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。

看完这篇 HTTP,跟面试官扯皮就没问题了

与 HTTP 有关的组件

随着网络世界演进,HTTP 协议已经几乎成为不可替代的一种协议,在了解了 HTTP 的基本组成后,下面再来带你进一步认识一下 HTTP 协议。

网络模型

网络是一个复杂的系统,不仅包括大量的应用程序、端系统、通信链路、分组交换机等,还有各种各样的协议组成,那么现在我们就来聊一下网络中的协议层次。

为了给网络协议的设计提供一个结构,网络设计者以分层 (layer) 的方式组织协议,每个协议属于层次模型之一。每一层都是向它的上一层提供服务 (service),即所谓的服务模型 (service model)。每个分层中所有的协议称为 协议栈 (protocol stack)。因特网的协议栈由五个部分组成:物理层、链路层、网络层、运输层和应用层。我们采用自上而下的方法研究其原理,也就是应用层 -> 物理层的方式。

应用层

应用层是网络应用程序和网络协议存放的分层,因特网的应用层包括许多协议,例如我们学 web 离不开的 HTTP,电子邮件传送协议 SMTP、端系统文件上传协议 FTP、还有为我们进行域名解析的 DNS 协议。应用层协议分布在多个端系统上,一个端系统应用程序与另外一个端系统应用程序交换信息分组,我们把位于应用层的信息分组称为 报文 (message)。

运输层

因特网的运输层在应用程序断点之间传送应用程序报文,在这一层主要有两种传输协议 TCP 和 UDP,利用这两者中的任何一个都能够传输报文,不过这两种协议有巨大的不同。

TCP 向它的应用程序提供了面向连接的服务,它能够控制并确认报文是否到达,并提供了拥塞机制来控制网络传输,因此当网络拥塞时,会抑制其传输速率。

UDP 协议向它的应用程序提供了无连接服务。它不具备可靠性的特征,没有流量控制,也没有拥塞控制。我们把运输层的分组称为 报文段 (segment)

网络层

因特网的网络层负责将称为 数据报 (datagram) 的网络分层从一台主机移动到另一台主机。网络层一个非常重要的协议是 IP 协议,所有具有网络层的因特网组件都必须运行 IP 协议,IP 协议是一种网际协议,除了 IP 协议外,网络层还包括一些其他网际协议和路由选择协议,一般把网络层就称为 IP 层,由此可知 IP 协议的重要性。

链路层

现在我们有应用程序通信的协议,有了给应用程序提供运输的协议,还有了用于约定发送位置的 IP 协议,那么如何才能真正的发送数据呢?为了将分组从一个节点(主机或路由器)运输到另一个节点,网络层必须依靠链路层提供服务。链路层的例子包括以太网、WiFi 和电缆接入的 DOCSIS 协议,因为数据从源目的地传送通常需要经过几条链路,一个数据包可能被沿途不同的链路层协议处理,我们把链路层的分组称为 帧 (frame)

物理层

虽然链路层的作用是将帧从一个端系统运输到另一个端系统,而物理层的作用是将帧中的一个个 比特 从一个节点运输到另一个节点,物理层的协议仍然使用链路层协议,这些协议与实际的物理传输介质有关,例如,以太网有很多物理层协议:关于双绞铜线、关于同轴电缆、关于光纤等等。

五层网络协议的示意图如下

看完这篇 HTTP,跟面试官扯皮就没问题了

OSI 模型

我们上面讨论的计算网络协议模型不是唯一的 协议栈,ISO (国际标准化组织)提出来计算机网络应该按照 7 层来组织,那么 7 层网络协议栈与 5 层的区别在哪里?

从图中可以一眼看出,OSI 要比上面的网络模型多了 表示层 和 会话层,其他层基本一致。表示层主要包括数据压缩和数据加密以及数据描述,数据描述使得应用程序不必担心计算机内部存储格式的问题,而会话层提供了数据交换的定界和同步功能,包括建立检查点和恢复方案。

看完这篇 HTTP,跟面试官扯皮就没问题了

浏览器

就如同各大邮箱使用电子邮件传送协议 SMTP 一样,浏览器是使用 HTTP 协议的主要载体,说到浏览器,你能想起来几种?是的,随着网景大战结束后,浏览器迅速发展,至今已经出现过的浏览器主要有:

看完这篇 HTTP,跟面试官扯皮就没问题了

浏览器正式的名字叫做 Web Broser,顾名思义,就是检索、查看互联网上网页资源的应用程序,名字里的 Web,实际上指的就是 World Wide Web,也就是万维网。

我们在地址栏输入 URL (即网址),浏览器会向 DNS (域名服务器,后面会说)提供网址,由它来完成 URL 到 IP 地址的映射。然后将请求你的请求提交给具体的服务器,在由服务器返回我们要的结果(以 HTML 编码格式返回给浏览器),浏览器执行 HTML 编码,将结果显示在浏览器的正文。这就是一个浏览器发起请求和接受响应的过程。

Web 服务器

Web 服务器的正式名称叫做 Web Server,Web 服务器一般指的是网站服务器,上面说到浏览器是 HTTP 请求的发起方,那么 Web 服务器就是 HTTP 请求的应答方,Web 服务器可以向浏览器等 Web 客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个 Web 服务器是 Apache、 Nginx 、IIS。

CDN

CDN 的全称是 Content Delivery Network,即内容分发网络,它应用了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求。CDN 是构建在现有网络基础之上的网络,它依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN 的关键技术主要有内容存储和分发技术。

打比方说你要去亚马逊上买书,之前你只能通过购物网站购买后从美国发货过海关等重重关卡送到你的家里,现在在中国建立一个亚马逊分基地,你就不用通过美国进行邮寄,从中国就能把书尽快给你送到。

WAF

WAF 是一种 Web 应用程序防护系统(Web Application Firewall,简称 WAF),它是一种通过执行一系列针对 HTTP / HTTPS 的安全策略来专门为 Web 应用提供保护的一款产品,它是应用层面的防火墙,专门检测 HTTP 流量,是防护 Web 应用的安全技术。

WAF 通常位于 Web 服务器之前,可以阻止如 SQL 注入、跨站脚本等攻击,目前应用较多的一个开源项目是 ModSecurity,它能够完全集成进 Apache 或 Nginx。

WebService

WebService 是一种 Web 应用程序,WebService 是一种跨编程语言和跨操作系统平台的远程调用技术。

Web Service 是一种由 W3C 定义的应用服务开发规范,使用 client-server 主从架构,通常使用 WSDL 定义服务接口,使用 HTTP 协议传输 XML 或 SOAP 消息,它是一个基于 Web (HTTP)的服务架构技术,既可以运行在内网,也可以在适当保护后运行在外网。

HTML

HTML 称为超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的 Internet 资源连接为一个逻辑整体。HTML 文本是由 HTML 命令组成的描述性文本,HTML 命令可以说明文字,图形、动画、声音、表格、链接等。

Web 页面构成

Web 页面(Web page)也叫做文档,是由一个个对象组成的。一个对象 (Objecy) 只是一个文件,比如一个 HTML 文件、一个 JPEG 图形、一个 Java 小程序或一个视频片段,它们在网络中可以通过 URL 地址寻址。多数的 Web 页面含有一个 HTML 基本文件 以及几个引用对象。

举个例子,如果一个 Web 页面包含 HTML 文件和 5 个 JPEG 图形,那么这个 Web 页面就有 6 个对象:一个 HTML 文件和 5 个 JPEG 图形。HTML 基本文件通过 URL 地址引用页面中的其他对象。

看完这篇 HTTP,跟面试官扯皮就没问题了

与 HTTP 有关的协议

在互联网中,任何协议都不会单独的完成信息交换,HTTP 也一样。虽然 HTTP 属于应用层的协议,但是它仍然需要其他层次协议的配合完成信息的交换,那么在完成一次 HTTP 请求和响应的过程中,需要哪些协议的配合呢?一起来看一下

TCP/IP

TCP/IP 协议你一定听过,TCP/IP 我们一般称之为协议簇,什么意思呢?就是 TCP/IP 协议簇中不仅仅只有 TCP 协议和 IP 协议,它是一系列网络通信协议的统称。而其中最核心的两个协议就是 TCP / IP 协议,其他的还有 UDP、ICMP、ARP 等等,共同构成了一个复杂但有层次的协议栈。

TCP 协议的全称是 Transmission Control Protocol 的缩写,意思是传输控制协议,HTTP 使用 TCP 作为通信协议,这是因为 TCP 是一种可靠的协议,而可靠能保证数据不丢失。

IP 协议的全称是 Internet Protocol 的缩写,它主要解决的是通信双方寻址的问题。IP 协议使用 IP 地址 来标识互联网上的每一台计算机,可以把 IP 地址想象成为你手机的电话号码,你要与他人通话必须先要知道他人的手机号码,计算机网络中信息交换必须先要知道对方的 IP 地址。(关于 TCP 和 IP 更多的讨论我们会在后面详解)

DNS

你有没有想过为什么你可以通过键入 www.google.com 就能够获取你想要的网站?我们上面说到,计算机网络中的每个端系统都有一个 IP 地址存在,而把 IP 地址转换为便于人类记忆的协议就是 DNS 协议。

DNS 的全称是域名系统(Domain Name System,缩写:DNS),它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

URI / URL

我们上面提到,你可以通过输入 www.google.com 地址来访问谷歌的官网,那么这个地址有什么规定吗?我怎么输都可以?AAA.BBB.CCC 是不是也行?当然不是的,你输入的地址格式必须要满足 URI 的规范。

URI 的全称是(Uniform Resource Identifier),中文名称是统一资源标识符,使用它就能够唯一地标记互联网上资源。

URL 的全称是(Uniform Resource Locator),中文名称是统一资源定位符,也就是我们俗称的网址,它实际上是 URI 的一个子集。

URI 不仅包括 URL,还包括 URN (统一资源名称),它们之间的关系如下

看完这篇 HTTP,跟面试官扯皮就没问题了

HTTPS

HTTP 一般是明文传输,很容易被攻击者窃取重要信息,鉴于此,HTTPS 应运而生。HTTPS 的全称为 (Hyper Text Transfer Protocol over SecureSocket Layer),全称有点长,HTTPS 和 HTTP 有很大的不同在于 HTTPS 是以安全为目标的 HTTP 通道,在 HTTP 的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在 HTTP 的基础上增加了 SSL 层,也就是说 HTTPS = HTTP + SSL。(这块我们后面也会详谈 HTTPS)

看完这篇 HTTP,跟面试官扯皮就没问题了

HTTP 请求响应过程

你是不是很好奇,当你在浏览器中输入网址后,到底发生了什么事情?你想要的内容是如何展现出来的?让我们通过一个例子来探讨一下,我们假设访问的 URL 地址为 http://www.someSchool.edu/someDepartment/home.index,当我们输入网址并点击回车时,浏览器内部会进行如下操作

  • DNS 服务器会首先进行域名的映射,找到访问 www.someSchool.edu 所在的地址,然后 HTTP 客户端进程在 80 端口发起一个到服务器 www.someSchool.edu 的 TCP 连接(80 端口是 HTTP 的默认端口)。在客户和服务器进程中都会有一个套接字与其相连。

  • HTTP 客户端通过它的套接字向服务器发送一个 HTTP 请求报文。该报文中包含了路径 someDepartment/home.index 的资源,我们后面会详细讨论 HTTP 请求报文。

  • HTTP 服务器通过它的套接字接受该报文,进行请求的解析工作,并从其存储器 (RAM 或磁盘) 中检索出对象 www.someSchool.edu/someDepartment/home.index,然后把检索出来的对象进行封装,封装到 HTTP 响应报文中,并通过套接字向客户进行发送。
  • HTTP 服务器随即通知 TCP 断开 TCP 连接,实际上是需要等到客户接受完响应报文后才会断开 TCP 连接。
  • HTTP 客户端接受完响应报文后,TCP 连接会关闭。HTTP 客户端从响应中提取出报文中是一个 HTML 响应文件,并检查该 HTML 文件,然后循环检查报文中其他内部对象。
  • 检查完成后,HTTP 客户端会把对应的资源通过显示器呈现给用户。

至此,键入网址再按下回车的全过程就结束了。上述过程描述的是一种简单的请求-响应全过程,真实的请求-响应情况可能要比上面描述的过程复杂很多。

看完这篇 HTTP,跟面试官扯皮就没问题了

HTTP 请求特征

**
**

从上面整个过程中我们可以总结出 HTTP 进行分组传输是具有以下特征

  • 支持客户-服务器模式
  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。
  • 灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记。
  • 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  • 无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

看完这篇 HTTP,跟面试官扯皮就没问题了

详解 HTTP 报文

**
**

我们上面描述了一下 HTTP 的请求响应过程,流程比较简单,但是凡事就怕认真,你这一认真,就能拓展出很多东西,比如 HTTP 报文是什么样的,它的组成格式是什么? 下面就来探讨一下

HTTP 协议主要由三大部分组成:

  • 起始行(start line):描述请求或响应的基本信息;
  • 头部字段(header):使用 key-value 形式更详细地说明报文;
  • 消息正文(entity):实际传输的数据,它不一定是纯文本,可以是图片、视频等二进制数据。

其中起始行和头部字段并成为 请求头 或者 响应头,统称为 Header;消息正文也叫做实体,称为 body。HTTP 协议规定每次发送的报文必须要有 Header,但是可以没有 body,也就是说头信息是必须的,实体信息可以没有。而且在 header 和 body 之间必须要有一个空行(CRLF),如果用一幅图来表示一下的话,我觉得应该是下面这样

看完这篇 HTTP,跟面试官扯皮就没问题了

我们使用上面的那个例子来看一下 http 的请求报文

看完这篇 HTTP,跟面试官扯皮就没问题了

如图,这是 http://www.someSchool.edu/someDepartment/home.index 请求的请求头,通过观察这个 HTTP 报文我们就能够学到很多东西,首先,我们看到报文是用普通 ASCII 文本书写的,这样保证人能够可以看懂。然后,我们可以看到每一行和下一行之间都会有换行,而且最后一行(请求头部后)再加上一个回车换行符。

每个报文的起始行都是由三个字段组成:方法、URL 字段和 HTTP 版本字段。

看完这篇 HTTP,跟面试官扯皮就没问题了

HTTP 请求方法

HTTP 请求方法一般分为 8 种,它们分别是

  • GET 获取资源,GET 方法用来请求访问已被 URI 识别的资源。指定的资源经服务器端解析后返回响应内容。也就是说,如果请求的资源是文本,那就保持原样返回;

  • POST 传输实体,虽然 GET 方法也可以传输主体信息,但是便于区分,我们一般不用 GET 传输实体信息,反而使用 POST 传输实体信息,

  • PUT 传输文件,PUT 方法用来传输文件。就像 FTP 协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求 URI 指定的位置。

但是,鉴于 HTTP 的 PUT 方法自身不带验证机制,任何人都可以上传文件 , 存在安全性问题,因此一般的 W eb 网站不使用该方法。若配合 W eb 应用程序的验证机制,或架构设计采用 REST (REpresentational State Transfer,表征状态转移)标准的同类 Web 网站,就可能会开放使用 PUT 方法。

  • HEAD 获得响应首部,HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认 URI 的有效性及资源更新的日期时间等。

  • DELETE 删除文件,DELETE 方法用来删除文件,是与 PUT 相反的方法。DELETE 方法按请求 URI 删除指定的资源。

  • OPTIONS 询问支持的方法,OPTIONS 方法用来查询针对请求 URI 指定的资源支持的方法。

  • TRACE 追踪路径,TRACE 方法是让 Web 服务器端将之前的请求通信环回给客户端的方法。

  • CONNECT 要求用隧道协议连接代理,CONNECT 方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行 TCP 通信。主要使用 SSL (Secure Sockets Layer,安全套接层)和 TLS (Transport Layer Security,传输层安全)协议把通信内容加 密后经网络隧道传输。

我们一般最常用的方法也就是 GET 方法和 POST 方法,其他方法暂时了解即可。下面是 HTTP1.0 和 HTTP1.1 支持的方法清单

看完这篇 HTTP,跟面试官扯皮就没问题了

HTTP 请求 URL

HTTP 协议使用 URI 定位互联网上的资源。正是因为 URI 的特定功能,在互联网上任意位置的资源都能访问到。URL 带有请求对象的标识符。在上面的例子中,浏览器正在请求对象 /somedir/page.html 的资源。

我们再通过一个完整的域名解析一下 URL

比如 http://www.example.com:80/path/to/myfile.html?key1=value1&key2;=value2#SomewhereInTheDocument 这个 URL 比较繁琐了吧,你把这个 URL 搞懂了其他的 URL 也就不成问题了。

首先出场的是 http

看完这篇 HTTP,跟面试官扯皮就没问题了

http:// 告诉浏览器使用何种协议。对于大部分 Web 资源,通常使用 HTTP 协议或其安全版本,HTTPS 协议。另外,浏览器也知道如何处理其他协议。例如, mailto: 协议指示浏览器打开邮件客户端;ftp: 协议指示浏览器处理文件传输。

第二个出场的是 主机

看完这篇 HTTP,跟面试官扯皮就没问题了

www.example.com 既是一个域名,也代表管理该域名的机构。它指示了需要向网络上的哪一台主机发起请求。当然,也可以直接向主机的 IP address 地址发起请求。但直接使用 IP 地址的场景并不常见。

第三个出场的是 端口

看完这篇 HTTP,跟面试官扯皮就没问题了

我们前面说到,两个主机之间要发起 TCP 连接需要两个条件,主机 + 端口。它表示用于访问 Web 服务器上资源的入口。如果访问的该 Web 服务器使用 HTTP 协议的标准端口(HTTP 为 80,HTTPS 为 443)授予对其资源的访问权限,则通常省略此部分。否则端口就是 URI 必须的部分。

上面是请求 URL 所必须包含的部分,下面就是 URL 具体请求资源路径

第四个出场的是 路径

看完这篇 HTTP,跟面试官扯皮就没问题了

/path/to/myfile.html 是 Web 服务器上资源的路径。以端口后面的第一个 / 开始,到 ? 号之前结束,中间的 每一个 / 都代表了层级(上下级)关系。这个 URL 的请求资源是一个 html 页面。

紧跟着路径后面的是 查询参数

看完这篇 HTTP,跟面试官扯皮就没问题了

?key1=value1&key2;=value2 是提供给 Web 服务器的额外参数。如果是 GET 请求,一般带有请求 URL 参数,如果是 POST 请求,则不会在路径后面直接加参数。这些参数是用 & 符号分隔的键 / 值对列表。key1 = value1 是第一对,key2 = value2 是第二对参数

紧跟着参数的是锚点

看完这篇 HTTP,跟面试官扯皮就没问题了

SomewhereInTheDocument 是资源本身的某一部分的一个锚点。锚点代表资源内的一种“书签”,它给予浏览器显示位于该“加书签”点的内容的指示。例如,在 HTML 文档上,浏览器将滚动到定义锚点的那个点上;在视频或音频文档上,浏览器将转到锚点代表的那个时间。值得注意的是 # 号后面的部分,也称为片段标识符,永远不会与请求一起发送到服务器。

HTTP 版本

表示报文使用的 HTTP 协议版本。

请求头部

这部分内容只是大致介绍一下,内容较多,后面会再以一篇文章详述。

在表述完了起始行之后我们再来看一下请求头部,现在我们向上找,找到 http://www.someSchool.edu/someDepartment/home.index,来看一下它的请求头部

    Host: www.someschool.edu       Connection: close       User-agent: Mozilla/5.0       Accept-language: fr   

这个请求头信息比较少,首先 Host 表示的是对象所在的主机。你也许认为这个 Host 是不需要的,因为 URL 不是已经指明了请求对象的路径了吗?这个首部行提供的信息是 Web 代理高速缓存所需要的。Connection: close 表示的是浏览器需要告诉服务器使用的是非持久连接。它要求服务器在发送完响应的对象后就关闭连接。User-agent: 这是请求头用来告诉 Web 服务器,浏览器使用的类型是 Mozilla/5.0,即 Firefox 浏览器。Accept-language 告诉 Web 服务器,浏览器想要得到对象的法语版本,前提是服务器需要支持法语类型,否则将会发送服务器的默认版本。下面我们针对主要的实体字段进行介绍(具体的可以参考 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers MDN 官网学习)

HTTP 的请求标头分为四种: 通用标头、请求标头、响应标头 和 实体标头,依次来进行详解。

通用标头

通用标头主要有三个,分别是 Date、Cache-Control 和 Connection

Date

Date 是一个通用标头,它可以出现在请求标头和响应标头中,它的基本表示如下

    Date: Wed, 21 Oct 2015 07:28:00 GMT   

表示的是格林威治标准时间,这个时间要比北京时间慢八个小时

看完这篇 HTTP,跟面试官扯皮就没问题了

Cache-Control

Cache-Control 是一个通用标头,他可以出现在请求标头和响应标头中,Cache-Control 的种类比较多,虽然说这是一个通用标头,但是有一些特性是请求标头具有的,有一些是响应标头才有的。主要大类有 可缓存性、阈值性、 重新验证并重新加载 和其他特性

可缓存性是唯一响应标头才具有的特性,我们会在响应标头中详述。

阈值性,这个我翻译可能不准确,它的原英文是 Expiration,我是根据它的值来翻译的,你看到这些值可能会觉得我翻译的有点道理

  • max-age: 资源被认为仍然有效的最长时间,与 Expires 不同,这个请求是相对于 request 标头的时间,而 Expires 是相对于响应标头。(请求标头)
  • s-maxage: 重写了 max-age 和 Expires 请求头,仅仅适用于共享缓存,被私有缓存所忽略(这块不理解,看完响应头的 Cache-Control 再进行理解)(请求标头)
  • max-stale:表示客户端将接受的最大响应时间,以秒为单位。(响应标头)
  • min-fresh: 表示客户端希望响应在指定的最小时间内有效。(响应标头)

Connection

Connection 决定当前事务(一次三次握手和四次挥手)完成后,是否会关闭网络连接。Connection 有两种,一种是持久性连接,即一次事务完成后不关闭网络连接

    Connection: keep-alive   

另一种是非持久性连接,即一次事务完成后关闭网络连接

    Connection: close 

HTTP1.1 其他通用标头如下

看完这篇 HTTP,跟面试官扯皮就没问题了

实体标头

实体标头是描述消息正文内容的 HTTP 标头。实体标头用于 HTTP 请求和响应中。头部 Content-Length、 Content-Language、 Content-Encoding 是实体头。

  • Content-Length 实体报头指示实体主体的大小,以字节为单位,发送到接收方。
  • Content-Language 实体报头描述了客户端或者服务端能够接受的语言,例如
    Content-Language: de-DE       Content-Language: en-US       Content-Language: de-DE, en-CA   
  • Content-Encoding 这又是一个比较麻烦的属性,这个实体报头用来压缩媒体类型。Content-Encoding 指示对实体应用了何种编码。

常见的内容编码有这几种:gzip、compress、deflate、identity ,这个属性可以应用在请求报文和响应报文中

    Accept-Encoding: gzip, deflate // 请求头       Content-Encoding: gzip  // 响应头   

下面是一些实体标头字段

看完这篇 HTTP,跟面试官扯皮就没问题了

请求标头

上面给出的例子请求报文的属性比较少,下面给出一个 MDN 官网的例子

    GET /home.html HTTP/1.1       Host: developer.mozilla.org       User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:50.0) Gecko/20100101 Firefox/50.0       Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8       Accept-Language: en-US,en;q=0.5       Accept-Encoding: gzip, deflate, br       Referer: https://developer.mozilla.org/testpage.html       Connection: keep-alive       Upgrade-Insecure-Requests: 1       If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT       If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"       Cache-Control: max-age=0 

Host

Host 请求头指明了服务器的域名(对于虚拟主机来说),以及(可选的)服务器监听的 TCP 端口号。如果没有给定端口号,会自动使用被请求服务的默认端口(比如请求一个 HTTP 的 URL 会自动使用 80 作为端口)。

    Host: developer.mozilla.org   

上面的 Accpet、 Accept-Language、Accept-Encoding 都是属于内容协商的请求标头,我们会在下面说明

Referer

HTTP Referer 属性是请求标头的一部分,当浏览器向 web 服务器发送请求的时候,一般会带上 Referer,告诉服务器该网页是从哪个页面链接过来的,服务器因此可以获得一些信息用于处理。

    Referer: https://developer.mozilla.org/testpage.html   

Upgrade-Insecure-Requests

Upgrade-Insecure-Requests 是一个请求标头,用来向服务器端发送信号,表示客户端优先选择加密及带有身份验证的响应。

    Upgrade-Insecure-Requests: 1   

If-Modified-Since

HTTP 的 If-Modified-Since 使其成为条件请求:

  • 返回 200,只有在给定日期的最后一次修改资源后,服务器才会以 200 状态发送回请求的资源。
  • 如果请求从开始以来没有被修改过,响应会返回 304 并且没有任何响应体

If-Modified-Since 通常会与 If-None-Match 搭配使用,If-Modified-Since 用于确认代理或客户端拥有的本地资源的有效性。获取资源的更新日期时间,可通过确认首部字段 Last-Modified 来确定。

大白话说就是如果在 Last-Modified 之后更新了服务器资源,那么服务器会响应 200,如果在 Last-Modified 之后没有更新过资源,则返回 304。

    If-Modified-Since: Mon, 18 Jul 2016 02:36:04 GMT   

If-None-Match

If-None-Match HTTP 请求标头使请求成为条件请求。对于 GET 和 HEAD 方法,仅当服务器没有与给定资源匹配的 ETag 时,服务器才会以 200 状态发送回请求的资源。对于其他方法,仅当最终现有资源的 ETag 与列出的任何值都不匹配时,才会处理请求。

    If-None-Match: "c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"   

ETag 属于响应标头,后面进行介绍。

内容协商

内容协商机制是指客户端和服务器端就响应的资源内容进行交涉,然后提供给客户端最为适合的资源。内容协商会以响应资源的语言、字符集、编码方式等作为判断的标准。

看完这篇 HTTP,跟面试官扯皮就没问题了

内容协商主要有以下 3 种类型:

  • 服务器驱动协商(Server-driven Negotiation)

这种协商方式是由服务器端进行内容协商。服务器端会根据请求首部字段进行自动处理

  • 客户端驱动协商(Agent-driven Negotiation)

这种协商方式是由客户端来进行内容协商。

  • 透明协商(Transparent Negotiation)

是服务器驱动和客户端驱动的结合体,是由服务器端和客户端各自进行内容协商的一种方法。

内容协商的分类有很多种,主要的几种类型是 Accept、Accept-Charset、Accept-Encoding、Accept-Language、Content-Language。

Accept

接受请求 HTTP 标头会通告客户端其能够理解的 MIME 类型

那么什么是 MIME 类型呢?在回答这个问题前你应该先了解一下什么是 MIME

MIME: MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。

也就是说,MIME 类型其实就是一系列消息内容类型的集合。那么 MIME 类型都有哪些呢?

文本文件:text/html、text/plain、text/css、application/xhtml+xml、application/xml

图片文件:image/jpeg、image/gif、image/png

视频文件:video/mpeg、video/quicktime

应用程序二进制文件:application/octet-stream、application/zip

比如,如果浏览器不支持 PNG 图片的显示,那 Accept 就不指定 image/png,而指定可处理的 image/gif 和 image/jpeg 等图片类型。

一般 MIME 类型也会和 q 这个属性一起使用,q 是什么?q 表示的是权重,来看一个例子

    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8   

这是什么意思呢?若想要给显示的媒体类型增加优先级,则使用 q= 来额外表示权重值,没有显示权重的时候默认值是 1.0 ,我给你列个表格你就明白了

看完这篇 HTTP,跟面试官扯皮就没问题了

也就是说,这是一个放置顺序,权重高的在前,低的在后,application/xml;q=0.9 是不可分割的整体。

Accept-Charset

accept-charset 属性规定服务器处理表单数据所接受的字符集。

accept-charset 属性允许您指定一系列字符集,服务器必须支持这些字符集,从而得以正确解释表单中的数据。

该属性的值是用引号包含字符集名称列表。如果可接受字符集与用户所使用的字符即不相匹配的话,浏览器可以选择忽略表单或是将该表单区别对待。

此属性的默认值是 unknown,表示表单的字符集与包含表单的文档的字符集相同。

常用的字符集有:UTF-8 – Unicode 字符编码 ;ISO-8859-1 – 拉丁字母表的字符编码

Accept-Language

首部字段 Accept-Language 用来告知服务器用户代理能够处理的自然语言集(指中文或英文等),以及自然语言集的相对优先级。可一次指定多种自然语言集。和 Accept 首部字段一样,按权重值 q 来表示相对优先级。

    Accept-Language: en-US,en;q=0.5   

请求标头我们大概就介绍这几种,后面会有一篇文章详细深挖所有的响应头的,下面是一个响应头的汇总,基于 HTTP 1.1

看完这篇 HTTP,跟面试官扯皮就没问题了

响应标头

响应标头是可以在 HTTP 响应种使用的 HTTP 标头,这听起来是像一句废话,不过确实是这样解释。并不是所有出现在响应中的标头都是响应标头。还有一些特殊的我们上面说过,有通用标头和实体标头也会出现在响应标头中,比如 Content-Length 就是一个实体标头,但是,在这种情况下,这些实体请求通常称为响应头。下面以一个例子为例和你探讨一下响应头

    200 OK       Access-Control-Allow-Origin: *       Connection: Keep-Alive       Content-Encoding: gzip       Content-Type: text/html; charset=utf-8       Date: Mon, 18 Jul 2016 16:06:00 GMT       Etag: "c561c68d0ba92bbeb8b0f612a9199f722e3a621a"       Keep-Alive: timeout=5, max=997       Last-Modified: Mon, 18 Jul 2016 02:36:04 GMT       Server: Apache       Set-Cookie: mykey=myvalue; expires=Mon, 17-Jul-2017 16:06:00 GMT; Max-Age=31449600; Path=/; secure       Transfer-Encoding: chunked       Vary: Cookie, Accept-Encoding       x-frame-options: DENY   

响应状态码

首先出现的应该就是 200 OK,这是 HTTP 响应标头的状态码,它表示着响应成功完成。HTTP 响应标头的状态码有很多,并做了如下规定

以 2xx 为开头的都表示请求成功响应。

看完这篇 HTTP,跟面试官扯皮就没问题了

以 3xx 为开头的都表示需要进行附加操作以完成请求

看完这篇 HTTP,跟面试官扯皮就没问题了

以 4xx 的响应结果表明客户端是发生错误的原因所在。

看完这篇 HTTP,跟面试官扯皮就没问题了

以 5xx 为开头的响应标头都表示服务器本身发生错误

看完这篇 HTTP,跟面试官扯皮就没问题了

Access-Control-Allow-Origin

一个返回的 HTTP 标头可能会具有 Access-Control-Allow-Origin ,Access-Control-Allow-Origin 指定一个来源,它告诉浏览器允许该来源进行资源访问。否则-对于没有凭据的请求 *通配符,告诉浏览器允许任何源访问资源。例如,要允许源 https://mozilla.org 的代码访问资源,可以指定:

    Access-Control-Allow-Origin: https://mozilla.org       Vary: Origin   

如果服务器指定单个来源而不是 *通配符的话 ,则服务器还应在 Vary 响应标头中包含 Origin ,以向客户端指示 服务器响应将根据原始请求标头的值而有所不同。

Keep-Alive

上面我们提到,HTTP 报文标头会分为四种,这其实是按着上下文来分类的

还有一种分类是根据代理进行分类,根据代理会分为端到端头 和 逐跳标头

而 Keep-Alive 表示的是 Connection 非持续连接的存活时间,如下

    Connection: Keep-Alive       Keep-Alive: timeout=5, max=997   

Keep-Alive 有两个参数,它们是以逗号分隔的参数列表,每个参数由一个标识符和一个由等号 = 分隔的值组成。

timeout:指示空闲连接必须保持打开状态的最短时间(以秒为单位)。

max:指示在关闭连接之前可以在此连接上发送的最大请求数。

上述 HTTP 代码的意思就是限制最大的超时时间是 5s 和 最大的连接请求是 997 个。

Server

服务器标头包含有关原始服务器用来处理请求的软件的信息。

应该避免使用过于冗长和详细的 Server 值,因为它们可能会泄露内部实施细节,这可能会使攻击者容易地发现并利用已知的安全漏洞。例如下面这种写法

    Server: Apache/2.4.1 (Unix)   

Set-Cookie

Cookie 又是另外一个领域的内容了,我们后面文章会说道 Cookie,这里需要记住 Cookie、Set-Cookie 和 Content-Disposition 等在其他 RFC 中定义的首部字段,它们不是属于 HTTP 1.1 的首部字段,但是使用率仍然很高。

Transfer-Encoding

首部字段 Transfer-Encoding 规定了传输报文主体时采用的编码方式。

    Transfer-Encoding: chunked   

HTTP /1.1 的传输编码方式仅对分块传输编码有效。

X-Frame-Options

HTTP 首部字段是可以自行扩展的。所以在 Web 服务器和浏览器的应用上,会出现各种非标准的首部字段。

首部字段 X-Frame-Options 属于 HTTP 响应首部,用于控制网站内容在其他 Web 网站的 Frame 标签内的显示问题。其主要目的是为了防止点击劫持(clickjacking)攻击。

下面是一个响应头的汇总,基于 HTTP 1.1

看完这篇 HTTP,跟面试官扯皮就没问题了

非 HTTP/1.1 首部字段

在 HTTP 协议通信交互中使用到的首部字段,不限于 RFC2616 中定义的 47 种首部字段。还有 Cookie、Set-Cookie 和 Content-Disposition 等在其他 RFC 中定义的首部字段,它们的使用频率也很高。这些非正式的首部字段统一归纳在 RFC4229 HTTP Header Field Registrations 中。

End-to-end 首部和 Hop-by-hop 首部

HTTP 首部字段将定义成缓存代理和非缓存代理的行为,分成 2 种类型。

一种是 End-to-end 首部 和 Hop-by-hop 首部

End-to-end (端到端) 首部

这些标头必须发送给消息的最终接收者 : 请求的服务器,或响应的客户端。中间代理必须重新传输未经修改的标头,并且缓存必须存储这些信息

Hop-by-hop (逐跳) 首部

分在此类别中的首部只对单次转发有效,会因通过缓存或代理而不再转发。

下面列举了 HTTP/1.1 中的逐跳首部字段。除这 8 个首部字段之外,其他所有字段都属于端到端首部。

Connection、Keep-Alive、Proxy-Authenticate、Proxy-Authorization、Trailer、TE、Transfer-Encoding、Upgrade

看完这篇 HTTP,跟面试官扯皮就没问题了

HTTP 的优点和缺点

HTTP 的优点

简单灵活易扩展

HTTP 最重要也是最突出的优点是 简单、灵活、易于扩展。

HTTP 的协议比较简单,它的主要组成就是 header + body,头部信息也是简单的文本格式,而且 HTTP 的请求报文根据英文也能猜出来个大概的意思,降低学习门槛,能够让更多的人研究和开发 HTTP 应用。

所以,在简单的基础上,HTTP 协议又多了灵活 和 易扩展 的优点。

HTTP 协议里的请求方法、URI、状态码、原因短语、头字段等每一个核心组成要素都没有被制定死,允许开发者任意定制、扩充或解释,给予了浏览器和服务器最大程度的信任和自由。

应用广泛、环境成熟

因为过于简单,普及,因此应用很广泛。因为 HTTP 协议本身不属于一种语言,它并不限定某种编程语言或者操作系统,所以天然具有跨语言、跨平台的优越性。而且,因为本身的简单特性很容易实现,所以几乎所有的编程语言都有 HTTP 调用库和外围的开发测试工具。

随着移动互联网的发展, HTTP 的触角已经延伸到了世界的每一个角落,从简单的 Web 页面到复杂的 JSON、XML 数据,从台式机上的浏览器到手机上的各种 APP、新闻、论坛、购物、手机游戏,你很难找到一个没有使用 HTTP 的地方。

无状态

无状态其实既是优点又是缺点。因为服务器没有记忆能力,所以就不需要额外的资源来记录状态信息,不仅实现上会简单一些,而且还能减轻服务器的负担,能够把更多的 CPU 和内存用来对外提供服务。

HTTP 的缺点

无状态

既然服务器没有记忆能力,它就无法支持需要连续多个步骤的事务操作。每次都得问一遍身份信息,不仅麻烦,而且还增加了不必要的数据传输量。由此出现了 Cookie 技术。

明文

HTTP 协议里还有一把优缺点一体的双刃剑,就是明文传输。明文意思就是协议里的报文(准确地说是 header 部分)不使用二进制数据,而是用简单可阅读的文本形式。

对比 TCP、UDP 这样的二进制协议,它的优点显而易见,不需要借助任何外部工具,用浏览器、Wireshark 或者 tcpdump 抓包后,直接用肉眼就可以很容易地查看或者修改,为我们的开发调试工作带来极大的便利。

当然缺点也是显而易见的,就是不安全,可以被监听和被窥探。因为无法判断通信双方的身份,不能判断报文是否被更改过。

性能

HTTP 的性能不算差,但不完全适应现在的互联网,还有很大的提升空间。

参考资料:

https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Technical_overview

https://developer.mozilla.org/en-US/docs/Web/HTTP

https://baike.baidu.com/item/WEB 服务器 /8390210?fr=aladdin

https://baike.baidu.com/item/ 内容分发网络 /4034265

https://baike.baidu.com/item/HTML/97049?fr=aladdin

https://www.jianshu.com/p/3dd8f1879acb

《计算机网络-自顶向下方法》

《图解 HTTP》

HTTP 协议的内容协商

https://www.w3school.com.cn/tags/att_form_accept_charset.asp

【End】

《原力计划【第二季】- 学习力挑战》

正式开始

即日起至 3 月 21 日

千万流量支持原创作者

更有专属【勋章】等你来挑战

看完这篇 HTTP,跟面试官扯皮就没问题了

推荐阅读
高通发布 5G 基带芯片 X60:5nm 制程,2021 年上市美国 AI 公司 30 亿人脸数据被黑,遭科技巨头联合“封杀”先马后看!详解线性回归、朴素贝叶斯、随机森林在 R 和 Python 中的实现应用!(附代码)

近一半程序员单身、年薪低于 15 万,程序员扎心现状大调查!

看完就能独自把集群搭起来!Hadoop HDFS 完全分布式环境搭建以及技术详解

36 万美元套利!3 个步骤揭秘黑客 DeFi 闪电贷操盘全过程

看完这篇 HTTP,跟面试官扯皮就没问题了你点的每一个在看,我认真当成了喜欢

来源链接:mp.weixin.qq.com

扫一扫或点击黄金原野下载APP

扫一扫,关注微信公众号

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

JavaScript 你必须了解的主流趋势!

下载黄金原野APP赢取现金红包

JavaScript 你必须了解的主流趋势!

2020 年的技术热潮之下,我们该如何迎刃而上,需要具备哪些技术栈?如果你是一名前端开发者,不妨通过本文了解顶级的 JavaScript 框架以及未来趋势预探,来升级自己的技能吧!

JavaScript 你必须了解的主流趋势!

作者 | Eric Elliott
译者 | 苏本如,责编 | 屠敏头图 | CSDN 下载自视觉中国
出品 | CSDN (ID:CSDNnews)

以下为译文:

如果你想找到一份很棒的 JavaScript 工作,或者赶上 2020 年的重要技术,以及今后十年的重要技术,那么这篇文章就是为你准备的。本文的重点不是告诉你哪些技术堆栈和框架是“最佳”,最受大家喜爱或者最受欢迎的技术,而是告诉你哪些技术堆栈和框架能够为你提供在 2020 年及以后获得一份出色工作的最佳机会。

我们将研究以下不同来源的数据:

*谷歌搜索的趋势:https://trends.google.com/trends/

*State of JS 调查报告:https://2019.stateofjs.com/

*Stack Overflow 调查报告:https://insights.stackoverflow.com/survey/2019

*Npm 下载量:https://npm-stat.com/charts.html?package=react&package;=vue&package;=%40angular%2Fcore&package;=svelte&package;=jquery&from;=2015-12-30&to;=2019-12-30

*Indeed.com 上发布的空缺职位总数:https://www.indeed.com/

这些指标都不是完美的,但就本文的目的而言,npm 下载次数和 Indeed.com 职位发布数量应该给予最大的权重,当我们综合考虑这些指标时,它们可以清晰、一致地描绘 JavaScript 技术的前景和趋势。根据这些指标选择一个学习框架是一个好主意吗?那首先要取决于你的目标是什么。

因为我们有一个明确的目标:求职者学习的投资回报率。这就使得这项任务比告诉你什么对每个人都是最好的要容易得多。虽然没有一种方法是万能的,但客观地定义什么可以最大程度地实现特定的具体目标是很容易的。让我们来看看一些数据。

JavaScript 你必须了解的主流趋势!

首先,学习 JavaScript

在你过多地担心技术堆栈之前,请先学习 JavaScript 以及如何使用它来编写软件。如果你无法解释什么是函数组合、对象组合和模块,请从这里开始。所有的软件开发都是某种组合:我们把一个大的、复杂的问题分解成一些小的问题,然后使用软件构建块(如函数、对象、模块等等)来解决它们。我们将这些解决方案组合起来形成我们的应用程序。从 2020 年开始,请充分理解 JavaScript 和软件组合。

JavaScript 你必须了解的主流趋势!

React 在 2019 年占据主导地位,2020 年可能继续

**
**

JavaScript 你必须了解的主流趋势!

我喜欢 npm 下载量这个指标,因为它很好地表明了框架的活跃使用情况(*)。行业常用框架统计给于 npm 下载量的权重非常之高,原因是因为用户需要在其本地机器上运行 npm install。

注:此处 jQuery 被排除在外,原因是许多 jQuery 项目都是不使用 npm 的旧项目,因此无论如何它都会被严重低估。Svelte 被包括进来,是为了提供一些有关其在市场上的相对地位的见解,并解释其在其他图表中的缺失。目前还没有足够的数据让 Svelte 在图表中显示有意义的内容。例如,在 Google 搜索趋势中,它还不是一个可用的主题。

JavaScript 你必须了解的主流趋势!

空缺职位总数

下面这张图表显示了各特定框架的当前空缺职位总数统计(*):

JavaScript 你必须了解的主流趋势!

2019 年 12 月各 UI 框架空缺职位统计(数据来源:indeed.com)

与去年相比,React 扩大了领先优势,而 Angular 和 jQuery 都输给了 Vue。下面是一个饼图,显示了每个框架的相对就业市场份额:

JavaScript 你必须了解的主流趋势!

顶级框架的就业市场份额

JavaScript 开发人员的平均工资在 2019 年再次增长,从每年的 11.1 万美元增加到每年的 11.4 万美元(这里是数据来源)。

)统计方法:*职位搜索是在 indeed.com 网站进行的。为了排除误报,我将搜索与关键字“software”配对,以增强其相关性,然后乘以 ~1.5 (大致相当于使用“software”和不使用“software”的编程职位列表之间的差异)。所有搜索结果页(SERPs)都按日期排序并抽查其相关性。得到的数字并非 100% 准确,但对于本文中使用的相对近似值来说,它们已经足够好了。

JavaScript 你必须了解的主流趋势!

谷歌搜索趋势

JavaScript 你必须了解的主流趋势!

数据来源:https://trends.google.com/trends/explore?date=2017-01-01%202019-12-01&q;=%2Fm%2F012l1vxv,%2Fg%2F11c6w0ddw9,%2Fg%2F11c0vmgx5d,%2Fm%2F0268 gyp

正如你所料,搜索兴趣(*)反映了就业市场份额,但存在一些有趣的差异。我们可以清楚地看到,从 2017 年到现在,人们对 jQuery 的兴趣在减弱,并且 Vue.js 搜索兴趣正在强劲增长。以下是各框架在谷歌搜索统计中所占的份额:

JavaScript 你必须了解的主流趋势!

上图与职位空缺的统计结果一致:React 拥有强大的领先优势,吸引了 36% 的前端框架搜索量,其次是 Angular (约占 27%)和 jQuery (约占 25%)。对 Vue.js 的搜索兴趣远远大于它在就业市场的份额,但该数据与排名中的就业市场数据基本一致。看来我们已经成功地证实了这一点。

)统计方法:*对于所有搜索,数据都是按主题收集的,而不是按搜索词收集,以便从无关的关键字匹配中剔除误报。

JavaScript 你必须了解的主流趋势!

未来值得关注的框架

现在更多的职位需要具有 React 框架技能,而不是其他受欢迎但使用不那么广泛的框架,如 Svelte 或 Vue,这两个框架都有很高的满意度,但行业采用率相对要小得多。

学习 Svelte 或 Vue 框架可能会很酷。但是如果你的目标是找到一份工作,那么如果先学习 React,你会有更好的机会。

话虽如此,在《2019 年 JavaScript 状态调查报告》中,Svelte 和 Vue 的用户满意度得分都非常高。在过去,React 框架的高用户满意度得分预示了它相对于 Angular 框架的快速增长。Angular 框架在当时也占据了主导地位,但其用户满意度得分却相对较低。

在 2019 年,React 框架的用户满意度排名最高,达到 89%。紧跟其后的包括 Svelte (88%)和 Vue.js (87%,低于上一年的 91%)。Svelte 或 Vue 不太可能会抢走足够的 React 用户,但是许多仍在使用 Angular 和 jQuery 的用户,他们可能会转而使用 Svelte 或 Vue,从而在 2020 年推动这两个框架的进一步强劲增长。

可以肯定的是,掌握 React 框架将会增加你的机会,帮助你在 2020 年找到并守住一份很棒的工作。

JavaScript 你必须了解的主流趋势!

TypeScript vs JavaScript

毫无疑问,在过去几年中,TypeScript 的发展非常迅速,根据 JavaScript 现状调查报告 (State of JS Survey),89% 的 TypeScript 用户会再次使用它,66% 的调查对象要么使用 TypeScript,要么对使用 TypeScript 感兴趣(比最低年份的 71% 略有下降)。

但是,尽管人们的兴趣确实很强,并且使用率似乎正在迅速增长,但在就业市场上,拥有 TypeScript 方面的经验还不是很抢手。只有大约 7%的 JavaScript 空缺职位的职位描述中提到 TypeScript (数据来源)。这个数字对 TypeScript 的职位需求可能有些低估,因为招聘经理们希望 JavaScript 开发人员能够轻松地使用 TypeScript,因此他们有可能不会在工作岗位描述中提及 TypeScript。

JavaScript 你必须了解的主流趋势!

我坚持认为 TypeScript 语言的投资回报率可能较低甚至为负。它可能会损害而不是提高你的生产率,并且,如果你已经在使用诸如 TDD,代码审查和设计审查等优秀的缺陷预防工具,那么使用 TypeScript 编写代码不太可能带来明显的降低缺陷的好处。

话虽如此,TypeScript 有很多值得热爱的地方,你当然不应该害怕它,或者拒绝一份工作,仅仅因为它们使用的是 TypeScript 而不是 JavaScript。另外 TypeScript 是 JavaScript 的超集,因此从 JavaScript 转到 TypeScript 并不像学习完全不同的语言那样具有挑战性。

你可能不需要学习 TypeScript 语言就可以在 2020 年的就业市场竞争中脱颖而出,但是 TypeScript 引擎非常有用,即使对于标准 JavaScript 也是如此。

我每天都使用 TypeScript 引擎为使用 VS Code 编写的标准 JavaScript 提供智能感知(Intellisense)。甚至可以使用 JSDoc (TypeScript 引擎能够理解和解释 JSDoc,就像解释类型注释一样)或外部 d.ts 文件来增强这种智能感知,并且 VS Code 将自动获取你使用的模块的 TypeScript 定义。

注:多年来我一直使用并享受 TernJS 和 Atom 的组合带来的类似的好处,但是这种组合缺少 TypeScript 引擎 + VS Code 的维护和社区支持。

如果您尚未尝试使用 Visual Studio (VS) Code,你可能要从那里开始。顺便说一句,根据 JS 现状调查的受访者的反馈,VS Code 占据了 JavaScript IDE 市场的主导地位,市场份额为 57%,其次是 WebStorm,市场份额为 14%。

JavaScript 你必须了解的主流趋势!

数据管理

Redux 在状态管理器的竞赛中仍然处于领先地位,但是 GraphQL 和 Apollo 在满意度和兴趣上都有所提高。预计 GraphQL 在 2020 年将持续增长。

JavaScript 你必须了解的主流趋势!

也就是说,即使你在使用 GraphQL,我仍然认为有充分的理由来学习 Redux 状态管理,而且我认为每个人都会从学习 Redux 中受益,即使他们不使用这个框架。

GraphQL 是近年来流行的一种查询语言。它具有简单的语法,但是因为它是跨整个堆栈使用的,并且学习它需要学习如何将它连接到数据存储层,因此集成起来可能令人生畏,但值得付出努力。

GraphQL 不会在短期内完全取代 JSON REST API,但是它在 2019 年的增长很快,我预计其强劲增长将持续到 2020 年。

**
**

JavaScript 你必须了解的主流趋势!

后台框架

**
**

Express 是占主导地位的 Node 框架,它的满意度非常高,到 2020 年也不会有强劲的挑战者,但是随着无服务器(serverless)的兴起,我希望随着新的十年的到来,Express 的统治地位将逐渐下降。

JavaScript 你必须了解的主流趋势!

Next.js 是一个全栈 React 框架,最初是在 Express 之上构建的,但此后从 Express 切换到无服务器和静态优化,它像发疯似地快速增长起来。

当我们将 EricElliottJS.com 从 Express 切换到无服务器的 Next.js 时,我们的主机托管费用减少了 90%,并且页面加载速度变得更快。所以我无论多么强烈推荐它都不过分。现在,对于所有的应用程序,我们都使用了 Next.js 和 Zeit 托管。

JavaScript 你必须了解的主流趋势!

JavaScript 你必须了解的主流趋势!

测试

**
**

Jest 和 Cypress 分别在单元测试和功能测试中最受欢迎,但是我非常喜欢 RITEWay 和 TestCafe。RITEWay 是一个测试框架,它始终回答每个单元测试必须回答的 5 个问题。

TestCafe 和 Cypress 一样,是一个功能测试工具。有了它,你就不再需要和 Selenium 抗争,它具有更好的跨浏览器支持和出色的测试记录器 / 集成开发环境(IDE)。我强烈建议 QA 团队尝试 TestCafe。

JavaScript 你必须了解的主流趋势!

功能性工具

**
**

Lodash,Ramda,Immer,Redux 和 RxJS 是我经常使用的功能性工具。

JavaScript 你必须了解的主流趋势!

Ramda 在 2019 年取得了长足发展,并提供了 Lodash 所不具备的一些特性,包括 lense 和 transducer。RxJS 通过其管道化运算符提供了 transducer 样式功能。

Immer 使得在 JavaScript 对象上操作因无需对其进行转换而变得更加容易。Redux 是一个状态管理工具。

**
**

JavaScript 你必须了解的主流趋势!

2020 年的科技预览

**
**

在未来十年,有几项新兴技术将对人类生活产生巨大影响。以下是这些技术的最新概况:

人工智能

人工智能可能是有史以来最具变革性的技术。许多学者和自以为是的亿万富翁们都将人工智能描述成一个神奇的乌托邦,或者说是人类的末日。

正如我们所知,它当然可能是人类的终结,但也可能是人类和机器之间完美合作的开始。我们才刚刚开始对人工智能可能会变成什么样有了粗浅的一瞥。其中有些很吓人(比如 deep fakes 换脸术),有些则非常有用(比如 Adobe Premiere 为视频编辑新推出的自动重构(auto-reframe)功能)。到目前为止,事实是人工智能既令人难以置信的可怕,又非常有用。人工智能将继续产生一些令人恐惧的东西,但是通过人工智能改善人类生活的潜力也是巨大的。潘多拉的盒子已经打开,再也无法关闭了,所以我希望你能好好利用它来解决重要问题,改善我们的生活。

2019 年人工智能领域有许多重要突破。近年来,研究团队一直在各种视频游戏中争夺超人的表现,但某些类别的游戏仍然对人工智能构成挑战,包括《星际争霸 II》之类的长期战略游戏。DeepMind 的 AlphaStar 程序(一种人工智能)已经在官方的 Battle.net 服务器上使用与人类玩家相同的资源,达到了顶级玩家的水平。《星际争霸》是一款复杂的游戏,涉及长期的战略思维,一度被认为超出了人工智能的能力。战略思维是走向通用人工智能的重要里程碑。

如果这些游戏看起来像是愚蠢地使用了资源,那么不妨考虑一下,像 DeepMind 这样的项目在文本到语音方面也取得了令人难以置信的进步,这可以让人工智能代理和私人助理发出更自然的声音,而且更重要的是,可以把声音还给失去它们的人类。

人工智能还被用于诊断癌症、预测蛋白质折叠(可用于了解疾病和发现新药)、恢复残疾人的肢体控制、生成逼真的照片等(资料来源:https://www.stateof.ai/)。

无人驾驶汽车在变革性的人工智能技术中应该有自己的一席之地。这个生态系统中的主要参与者包括 Cruise、优步、Waymo、Nuro、Aurora、福特等。现在它还处于初期,过分乐观已经给这个行业带来了真正的问题,但毫无疑问,我们将在 21 世纪 20 年代看到超越人类的自动驾驶能力。在 2015 年的时候,我对无人驾驶做出了如下预测:

“到 2045 年,一个人驾驶的小车看起来就像一匹马拉着的轻便马车。”

5 年后,我想我可能低估了无人驾驶汽车的上市速度。2018 年,Waymo 汽车的行驶里程超过 100 万英里,美国 24 个城市的公共道路上都有无人驾驶汽车在行驶。今天,我预计到 2025 年,来自多家制造商的多种车型将实现 5 级完全自动驾驶。请关注特斯拉、通用、福特和宝马。

在过去的十年中,人工智能研究论文的发表量增长了 10 倍,现在人工智能正把实用、有帮助的工具交到主流用户手中,预计这一趋势将持续到新的十年。

我们已经开始看到人工智能做了很多几年前大多数人都不敢相信的事情。期待人工智能在下一个十年创造出更加惊人的奇迹。

区块链和加密货币

2019 年是区块链和加密货币领域具有里程碑意义的一年。区块链技术开始进入主流。我预计 2020 年会有更多的增长和主流采用。

DeFi (去中心化金融)爆炸式增长,实现了用户友好,无许可,无银行借贷。目前 DeFi 合同的总金额已经有 6.5 亿美元(包括 4.5 亿美元的无银行贷款),而 2019 年只是这项技术可用的第一年。随着越来越多的人投资于加密货币,我预测未来会有更多的加密货币支持的 DeFi 贷款。

人们可以在不牺牲其加密投资机会成本的情况下获得流动性,或使用 DeFi 贷款以杠杆效应投资加密货币(增加其投资的风险 / 回报)。

加密货币和区块链技术正在突破主流。比特币和以太坊的每日活跃地址在 2018 年 1 月达到峰值,随后一年由于市场低迷而兴趣减弱(每上涨 10 倍,加密货币的价格就会大幅回落,然后在下一个周期比之前的峰值再高出 10 倍)。

JavaScript 你必须了解的主流趋势!

比特币和以太坊区块链上的每日活动地址统计(数据来源:https://coinmetrics.io/charts/#assets=btc,eth_log=false_roll=90_left=AdrActCnt_zoom=1279411200000,1577836800000

*Square 的 Cash App 拥有超过 1000 万次的安卓版下载量。用户可以在一个拥有出色用户体验的简单应用程序中购买、出售、发送和接收比特币。

*Coinbase 的安卓版下载量超过 1000 万次。

*Brave 推出了内置以太坊钱包,每月活跃用户(MAU)的数量从 10 月的 870 万增加到 11 月底的 1040 万。

*借助 Sliver.tv 和 DLive,2000 万视频游戏迷正在使用 Theta 网络进行分散流媒体播放。

2019 年我最喜欢的变化是 Fortmatic 的引入。无论你是否正在构建加密应用程序,你都可以使用 Fortmatic 来替代你的用户身份验证并提高安全性、你还可以摆脱供应商锁定,并添加诸如端到端加密、签名事务等功能。

如果你打算在 2020 年构建一个新的应用程序,考虑使用 Fortmatic,而不是重复使用你自己的用户名 / 密码认证(2020 年应该没有人再这么做),或者将身份认证授权给谷歌、Facebook 等。

我写过一篇文章,讨论如何利用加密技术来改善应用程序的身份验证和安全性。我很期待看到主流应用在 2020 年采用像 Fortmatic 这样的技术。

以太坊在 2019 年轻松赢得了智能合约平台竞赛。我预计它将在 2020 年继续占据主导地位。

扩展现实(XR)

从 2015 年开始,我每年都会写一篇关于对 AR (增强现实)的期许的文章,从小我就一直梦想着它的实现。未来,扩展现实(XR)将取代手机。这只是时间问题。但是还需要多久是个悬而未决的问题。但现在看来这种转变可能在未来十年内出现。甚至可能在未来 5 年内开始。

由于虚拟现实(VR)和增强现实(AR)之间的界限已经模糊,因此业界现在将整个领域称为扩展现实(XR)。自推出以来,ARKit 和 ARCore (苹果和谷歌的增强现实 SDK)增长量惊人。从 2017 年到 2019 年 5 月,每月活跃用户从 4,700 万增长到了 1.5 亿。

WebAR 在 2019 年站稳了脚跟,并且有可能在 2020 年继续增长。如果你好奇的话,可以查看 AR.js、React 360 或 Viro React。

硬件方面也有了长足进步。HoloLens 1 在 2016 年首次发布开发者版本时,售价约为 5,000 美元。在那以后发生了什么?

HoloLens 2 仍然只售 3,500 美元,而且还没有为消费者做好准备。剪辑、防抖动和漂移、视场等方面仍然存在问题,你不会想整天穿着这些东西。不过,由于 99 美元 / 月的定价,获得一个开发者版本变成了一个可能性,即使你不得不在等待名单等上一段时间。

无人机

大约 200 万架无人机已经在美国售出,它们已经改变了建筑、地理调查、测绘、电影、航空摄影、农业、环境科学和娱乐业。很有可能,商用无人机的交付最终将于 2020 年在美国实现。。

FPV 无人机比赛是我最喜欢的观赏性体育运动,无人机比赛联盟的直播流比赛也是。如果你想了解它是什么样的,他们也有一个精心设计的模拟器。

所有这些新的无人机活动都需要很多软件,包括图像处理、无人机地图软件、交付飞行计划、遥测记录和处理、分析、工业应用集成等。

无人机和人工智能也有很多重叠之处。自动飞行的无人机需要图像处理、避免碰撞等。

JavaScript 你必须了解的主流趋势!

结论

21 世纪 10 年代给我们带来了许多变革性的技术,它们当中的许多我们已经视为理所当然,但是产生了巨大影响:

*Instagram

*Spotify

*优步

*虚拟助理

*无线耳塞

*主流虚拟现实

*增强现实(如在突破命中游戏“神奇宝贝”中所用)

*价格合理的特斯拉

*共享经济(汽车、踏板车、自行车)

*主流平板电脑

*主流生物识别技术(触摸识别、面部识别)

*众筹

我迫不及待想看到你在新的十年里的发展。

让我们变魔术吧!

原文:https://medium.com/javascript-scene/top-javascript-frameworks-and-topics-to-learn-in-2020-and-the-new-decade-ced6e9d812f9

本文为 CSDN 翻译,转载请注明来源出处。

【End】

《原力计划【第二季】- 学习力挑战》

正式开始

即日起至 3 月 21 日

千万流量支持原创作者

更有专属【勋章】等你来挑战

JavaScript 你必须了解的主流趋势!

推荐阅读
高通发布 5G 基带芯片 X60:5nm 制程,2021 年上市美国 AI 公司 30 亿人脸数据被黑,遭科技巨头联合“封杀”先马后看!详解线性回归、朴素贝叶斯、随机森林在 R 和 Python 中的实现应用!(附代码)

近一半程序员单身、年薪低于 15 万,程序员扎心现状大调查!

看完就能独自把集群搭起来!Hadoop HDFS 完全分布式环境搭建以及技术详解

36 万美元套利!3 个步骤揭秘黑客 DeFi 闪电贷操盘全过程

JavaScript 你必须了解的主流趋势!你点的每一个在看,我认真当成了喜欢

来源链接:mp.weixin.qq.com

扫一扫或点击黄金原野下载APP

扫一扫,关注微信公众号

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条

下载黄金原野APP赢取现金红包

微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条

微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条

整理 | 屠敏

头图 | CSDN 下载自视觉中国

快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持。

「极客头条」—— 技术人员的新闻圈!

CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。

微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条

一分钟速览新闻点!

  • 微信小程序直播能力正式公测

  • 刘强东卸任京东旗下物流公司经理一职,2020 年以来已卸任 8 家公司

  • 钉钉「出圈」 无意对标朋友圈,深挖私域流量社群运营

  • 字节跳动推出「飞书会议」独立 App

  • 微盟恢复服务,拟 3 月 1 日公布赔付及数据安全保障计划

  • 谷歌周五证实一名员工新冠病毒检测结果呈阳性

  • 亚马逊宣布退出游戏开发者大会

  • 爱立信全球斩获 81 个 5G 商用协议及合同

  • 外媒:苹果自动驾驶团队去年大调整,员工 5000 减至 200 人

  • 谷歌警告 Chromium 版 Edge 使用扩展不安全,微软回应

  • React 16.13.0 发布

微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条

国内要闻

微信小程序直播能力正式公测

微信官方正式宣布,小程序直播能力启动公测,致力于帮助更多商家打造线上经营闭环,完成快速转型,推动品牌生意增长。据了解,微信官方还发布了多个品牌通过小程序直播的经营数据,部分零售品牌实现用户量环比增长 5 倍、女装品牌交易额环比提升 372%。此外,微信预告了多项直播新能力、公布了小程序直播公测准入条件。

刘强东卸任京东旗下物流公司经理一职,2020 年以来已卸任 8 家公司天眼查数据显示,近日,天津煜东信德物流有限公司发生工商变更,刘强东卸任公司经理一职,张雱卸任执行董事,李娅云卸任监事,与此同时,胡伟接任公司经理和执行董事,新增监事缪晓虹。天津煜东信德物流有限公司由宿迁泰胜尚博物流有限公司全资控股,后者的全资股东为 JD Star Development X (HK) Limited。天眼查数据显示,这已是刘强东 2020 年以来卸任的第 8 家公司。(36kr)微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条

钉钉「出圈」 无意对标朋友圈,深挖私域流量社群运营

钉钉圈子产品定位为数字化社群运营平台,企业、组织或社群可免费使用钉钉圈子进行私域社群管理,主要的目标群体显然是企业、组织以及各自的内部成员。「钉钉圈子并没有非常明确的用户群界限,不同行业、不同群体都可以用钉钉圈子来进行社群的数字化运营 … 」无招说,圈子将成为所有企业组织数字化社群运营平台,让各行各业可以打造自己专属的社群,从而实现高效、透明的私域流量运营。

字节跳动推出「飞书会议」独立 App

字节跳动于 2 月 27 日推出了一款名为「飞书会议」的独立 App。App Store 显示,飞书会议 App 由北京飞书科技有限公司开发,是飞书旗下的视频会议协作平台,支持最多 100 方同时在线会议,并实现了全流程全链路加密。

微盟恢复服务,拟 3 月 1 日公布赔付及数据安全保障计划

微盟在官方微博宣布,截至 2 月 28 日 14 点,微盟所有业务恢复服务,数据恢复进展顺利。关于赔付计划和数据安全保障计划,公司将于 3 月 1 日零点正式公布。

微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条

微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条

国际要闻

谷歌周五证实一名员工新冠病毒检测结果呈阳性

据外媒报道,由于谷歌在瑞士一间办公室的一名员工检测出新冠病毒阳性,该公司目前正限制员工前往意大利、日本、伊朗和韩国,这些国家都已发现病毒蔓延。

此前,谷歌发言人已证实:“我们在苏黎世办事处的一名员工被确诊感染了冠状病毒。”“在出现症状之前,他在办公室里只呆了一小段时间。我们已经并将继续按照公共卫生官员的建议采取一切必要的预防措施,因为我们把每位员工的健康和安全放在首位。”这位发言人称,谷歌苏黎世办事处将继续开放 。(新浪科技)

亚马逊宣布退出游戏开发者大会

美国当地时间周五,游戏开发者大会(GDC)的顶级赞助商继续退出定于在旧金山举行的游戏盛会,亚马逊刚刚宣布将不再派员工参加。在最新消息中,亚马逊表示将举办一场“全球在线活动”,分享他们原定在游戏开发者大会上详细介绍的内容。出于对冠状病毒疫情爆发的担忧,Facebook、索尼、微软、Unity 和 EpicGames 等公司都退出了会议。(界面)

爱立信全球斩获 81 个 5G 商用协议及合同

爱立信官网数据显示:目前,爱立信已经与全球 81 家运营商签订了 5G 商用协议及合同,其中爱立信已经与 35 家运营商客户达成可公示的商用 5G 合同,爱立信目前在 14 个国家为 25 个已经正式运行的 5G 商用网络提供设备。而且,这些数据还将继续迅速增长。

外媒:苹果自动驾驶团队去年大调整,员工 5000 减至 200 人

据国外媒体报道,在近几年大热的自动驾驶汽车方面,苹果也有涉足,CEO 蒂姆·库克在 2017 年的 6 月,首次公开承认他们在研发自动驾驶系统。外媒在报道中表示,苹果自动驾驶项目团队在 2019 年曾进行人员大调整,由 5000 人削减至 200 人,调整的人员中,部分是转向机器学习,继续进行相关的研发。

微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条

程序员专区

谷歌警告 Chromium 版 Edge 使用扩展不安全,微软回应

上周,谷歌向微软 Edge 用户显示警告,并提醒用户是否“安全使用扩展程序”切换到 Chrome 浏览器上。谷歌后来表示,该公司之所以会显示此消息,是因为微软 Edge 不支持安全浏览,因此它将无法远程检测和删除恶意扩展。

近期,微软 Edge 开发人员 Eric Lawrence 确认 Edge 用户无需担心 Google 的警告。他在一条推文中确认新版 Edge 扩展商店更新查询每 2-4 小时一次,查询威胁更新每 30 分钟一次。他还分享了 Fiddler Web Debugger 的屏幕截图,显示了实际运行的过程。(IT 之家)

React 16.13.0 发布

主要更新:

  • 当以不适合将来 codemod 的方式使用字符串 ref 时发出警告 (@lunaruan in #17864)

  • 弃用 React.createFactory() (@trueadm in #17878)

详细内容可参考:https://github.com/facebook/react/releases/tag/v16.13.0

【End】

《原力计划【第二季】- 学习力挑战》

正式开始

即日起至 3 月 21 日

千万流量支持原创作者

更有专属【勋章】等你来挑战

微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条

推荐阅读
高通发布 5G 基带芯片 X60:5nm 制程,2021 年上市美国 AI 公司 30 亿人脸数据被黑,遭科技巨头联合“封杀”先马后看!详解线性回归、朴素贝叶斯、随机森林在 R 和 Python 中的实现应用!(附代码)

近一半程序员单身、年薪低于 15 万,程序员扎心现状大调查!

看完就能独自把集群搭起来!Hadoop HDFS 完全分布式环境搭建以及技术详解

36 万美元套利!3 个步骤揭秘黑客 DeFi 闪电贷操盘全过程

微信小程序直播正式公测;刘强东 2020 年已卸任 8 家公司高管;React 16.13.0 发布 | 极客头条你点的每一个在看,我认真当成了喜欢

来源链接:mp.weixin.qq.com

扫一扫或点击黄金原野下载APP

扫一扫,关注微信公众号

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。