前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nghttp2 - HTTP/2 C Library 简明教程(一)

nghttp2 - HTTP/2 C Library 简明教程(一)

作者头像
程序手艺人
发布2018-05-18 15:30:38
2.9K0
发布2018-05-18 15:30:38
举报
文章被收录于专栏:程序手艺人程序手艺人
nghttp2 - HTTP/2 C Library

nghttp2 是在C中的超文本传输协议版本2的实现. HTTP/2 的框架层被实现为可重用的C库. 最重要的是我们实现了一个HTTP/2客户端,服务器和代理.还为HTTP/2开发了负载测试和基准测试工具. HPACK编码器和解码器可用作公共API。 还有一个实验性的高级C++库. 我们有这个库的Python绑定,但是我们还没有完整的代码覆盖.

发展情况

为HTTP/2实现了RFC 7540 HTTP/2和RFC 7541 HPACK-头部压缩. nghttp2的代码库是从 spdylay中分出来的. (https://github.com/tatsuhiro-t/spdylay) project.

公共测试服务器

以下端点可用来测试nghttp2的实现.

  • https://nghttp2.org/ (TLS + ALPN/NPN) 此端点通过ALPN/NPN支持h2,h2-16,h2-14,和http/1.1,并且需要HTTP/2连接的TLSv1.2.
  • http://nghttp2.org/ (HTTP Upgrade and HTTP/2 Direct) h2c and http/1.1
编码风格

我们使用clang-format来统一格式化源代码.clang-format的配置文件.clang-format位于根目录下. 由于clang-format在版本之间产生稍微不同的结果,我们目前使用clang-format-5.0 .

为了检测任何违反编码风格的行为,我们建议设置git pre-commit hook来检查你更改的编码风格.pre-commit文件位于更目录. 将其复制到.git/hooks下,并确保是可执行文件. pre-commit 脚本使用clang-format-diff.py来检测任何样式错误. 如果它不在你的PATH中, 或者他以不同的名字存在(如debian中的clang-format-diff-5.0),可以将它添加到 PATH变量中,或者添加git选项clangformatdiff.binary来指向脚本.

针对emacs用户,将clang-format集合到emacs是非常容易的. clang-format.el应该与clang分发, 如果没有发现,请从这里下载,并将这些行添加到你的.emacs文件.

代码语言:javascript
复制
;; From
;; https://code.google.com/p/chromium/wiki/Emacs#Use_Google's_C++_style!
(load "/<path/to>/clang-format.el")
(add-hook 'c-mode-common-hook
     (function (lambda () (local-set-key (kbd "TAB")
                                         'clang-format-region))))

你可以找到其他的编辑器集成. http://clang.llvm.org/docs/ClangFormat.html.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年01月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • nghttp2 - HTTP/2 C Library
  • 发展情况
  • 公共测试服务器
  • 编码风格
相关产品与服务
测试服务
测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档