当前位置:嗨网首页>书籍在线阅读

02-Rust中的Web应用

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

13.1 Rust中的Web应用

“程序最重要的属性在于它是否满足了用户的需求”。

——C. A. R. Hoare

很少有低级语言能够支持开发者使用它编写Web应用程序,同时提供动态语言所具有的高级人机工程学特性。Rust诞生之后,这种情况大有改观。使用Rust开发Web应用程序类似于Ruby或Python等动态语言的开发体验,因为它具有高级抽象。

不过用动态语言开发的Web应用程序只能让你止步于此。许多开发者发现,当他们的代码库的代码达到10000行时,就会有动态语言的脆弱性。你所做的每一个细微改动都需要进行测试,以便了解应用程序的哪些部分会受到影响。而随着应用程序规模的增长,它在测试和更新方面的体验会变得非常糟糕。

使用Rust等静态类型语言构建Web应用程序的开发体验会好很多。在这里,你可以对代码进行编译期检查,从而大幅度减少编写单元测试的工作量,它还没有语言运行时(例如解释器)的开销,就像动态语言中运行GC的应用程序那样。使用静态类型语言编写的Web应用程序可以编译为单个静态二进制文件,从而使用最少的设置进行部署。此外,你可以从类型系统获得速度和准确性的保证,并且在代码重构期间编译器能够提供诸多建议。Rust为你提供所有这些保证,以及和动态语言类似的开发体验。

Web应用程序主要基于应用层协议并使用HTTP。HTTP是一种无状态协议,其中每条消息都来自客户端或服务器的请求或响应。HTTP中的消息由首部和有效载荷组成。首部提供HTTP消息类型的上下文,例如其来源或有效载荷的长度,而有效载荷包含实际的数据。HTTP是一种基于文本的协议,我们通常会使用程序库来完成将字符串解析为正确的HTTP消息的繁重工作。这些程序库还用于在它们之上构建高级抽象,例如Web框架。

为了在Rust中使用HTTP,我们有hyper软件包,后续章节将会对它进行详细阐述。