《胡凯_2023RustChinaConf大会.pdf》由会员分享,可在线阅读,更多相关《胡凯_2023RustChinaConf大会.pdf(26页珍藏版)》请在三个皮匠报告上搜索。
1、第三届中国Rust开发者大会Rust HTTP 协议栈在终端通信场景的实践协议栈在终端通信场景的实践胡凯华为 公共开发部 嵌入式软件能力中心什么是 HTTP 协议?HTTP 协议介绍目录终端场景下 HTTP 协议的主要使用场景,以及需要思考的问题。终端 HTTP 通信场景浅析我们当前结合 Rust 和终端通信场景的实践的简单介绍。Rust 与终端 HTTP 通信场景结合介绍 Rust 与 HTTP 协议栈结合的业界实现。Rust 与 HTTP 协议HTTP 协议介绍协议介绍Part 01什么是 HTTP 协议?Rust China Conf 2022 2023,Shanghai,ChinaRu
2、st China Conf 2022 2023,Shanghai,ChinaHTTP 协议协议介绍介绍HTTP 协议,即超文本传输协议(HyperText Transfer Protocol)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP 是一个客户端(用户)和服务端(网站)之间请求和应答的标准。Rust China Conf 2022 2023,Shanghai,ChinaHTTP 协议协议介绍介绍HTTP 协议主要具有以下特点:支持客户/服务器模式。简单快速:客户向服务器请求服务时,只需传送请求方法、路径和请求头。HTTP 协议简单、HTTP 服务器的程序规模小,因而通信速
3、度很快。灵活:HTTP 支持传输任意类型的数据对象。无连接:HTTP 限制每次连接只处理一个请求,节省传输时间。(在 HTTP/1.1 之后变更)无状态:HTTP 协议对于事务处理没有记忆能力,每个请求/应答之间相互独立。Rust China Conf 2022 2023,Shanghai,ChinaHTTP 协议协议介绍介绍HTTP 协议的版本演化如下:GETContentrequestresponseHTTP/0.9 早期的 HTTP 协议 请求方法仅能使用 GET 响应仅含有文档内容,且仅支持htmlMethodContentrequestresponseHTTP/1.0 新的请求方法
4、发送请求时附带版本信息 支持标头字段 支持请求上传内容 支持传输多种格式的内容。Req-LineHeadersContentHeadersSta-LineStatusHTTP/1.1 连接可以复用 管线化技术 支持响应分块 引入额外的缓存控制机制 引入内容协商机制 报文基本格式不再变化HTTP/2 二进制协议 支持多路复用 支持响应分块 支持标头压缩 支持服务端推送 报文基本格式不再变化HTTP/3 基于 UDP 连接 报文基本格式不再变化Rust China Conf 2022 2023,Shanghai,ChinaHTTP 协议协议介绍介绍HTTPS 协议=HTTP 协议+TLS超文本传输
5、安全协议(英语:HyperText Transfer Protocol Secure,缩写:HTTPS)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。Rust 与与 HTTP 协议协议Part 02介绍 Rust 与 HTTP 协议栈结合的业界实现Rust China Conf 2022 2023,Shanghai,ChinaRust China Conf 2022 2023,Shanghai,ChinaRust Rust 与与 HTTP HTTP 协议协议Rust 对于 HTTP 协议有良好支持:HTTP 协议是以 TCPTLS
6、UDP 等各种连接为基础的,非常依赖于高性能的 IO 操作。利用 Rust 异步实现 HTTP 协议和各种应用程序能得到十分可观的性能提升,并且能降低用户编码的难度。Rust China Conf 2022 2023,Shanghai,ChinaRust Rust 与与 HTTP HTTP 协议协议借助于 Rust 异步能力的热门 Rust HTTP 协议库或应用库:Hyperreqwestactix-webaxumRust China Conf 2022 2023,Shanghai,ChinaRust Rust 与与 HTTP HTTP 协议协议hyper 是一个高效且功能完整的HTTP 协