【Rust日报】2022-10-11 “正确的” HTTP 协议实现意味着什么

Fyrox 0.28 发布

Fyrox 是一个功能丰富、可用于生产的通用 2D/3D 游戏引擎,其采用 Rust 编写,并带有场景编辑器,能帮助你进行高效的开发。

近日,其发布了 0.28 版本,包括了一系列改进和修复,让你的游戏开发更加便捷。主要改动点为:

  1. 脚本的执行流改进;

  2. 用户界面的优化;

  3. 资源预览;

  4. 2D 游戏支持精灵图;

  5. ...

感兴趣的不妨阅读以下资料:

更新日志: https://fyrox.rs/blog/post/feature-highlights-0-28/

github主页: https://github.com/FyroxEngine/Fyrox

“正确的” HTTP 协议实现意味着什么

hyper 是一个非常完善且“正确的” HTTP 协议实现,广泛应用于各个项目中,有位网友在 reddit 上发帖问:像 hyper 这样的 HTTP 协议实现,声称是“正确的”,这到底意味着什么?

以下节选自高赞回答:

  1. 协议类似于一组规则。其规定了可接受的数据格式、在不同站点中允许哪些指令、应当采取的行为......。超文本传输协议(HTTP)也对应一个这样的规则列表,例如:

    a. 请求的第一行必须以动词(GET、POST 等)、url 和 HTTP 版本开头,然后是换行符;

    b. 标头必须采用特定格式。例如,标题的名称不能包含 “:” 字符;

    c. 如果请求包含正文,则必须声明长度。

    如果说 HTTP 协议的实现是“正确的”,背后的想法是,用户必须不可能生成无效的 HTTP 请求。例如,一旦您开始发送正文,就不可能设置 HTTP 头部,因为这样做是无效的。

  2. 从另一个角度来看,特别是对于像 HTTP 这样的协议,它比 RFC 规定的内容更难实现。最“正确的”实现,在应用于现实世界时,总会遇到一长串奇怪但合法的行为,这将使一些客户端或服务器在某些时候崩溃。

  3. 有时候在现实世界中,你需要忍受一些不正确的实现。例如 Cloudflare 就没有将 Hyper 应用于他们的 Rusty Proxy 服务中,因为它太严格了,不满足 Cloudflare 对于现实应用的需求。

reddit 讨论连接: https://www.reddit.com/r/rust/comments/xzxin3/what_is_meant_by_correct_http_implementation/

-- From 日报小组 RustPlumber

社区学习交流平台订阅:

  • Rust.cc 论坛: 支持 rss

  • 微信公众号:Rust 语言中文社区

你可能感兴趣的:(java,python,linux,http,人工智能)