最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

HTTP/1.1 协议更新:RFC 2616 遭废弃

  • 2014-06-09
  • 本文字数:885 字

    阅读完需:约 3 分钟

HTTP/1.1 协议更新:RFC2616 遭废弃

近日,IETF 更新了 HTTP/1.1 协议,这是 10 多年来 HTTP/1.1 协议的首次重大更新。组织者将原来的 RFC 2616 拆分为六个单独的协议说明,并重点对原来语义模糊的部分进行了解释,新的协议说明更易懂、易读。新的协议说明包括以下六部分:

  • RFC7230 - HTTP/1.1: Message Syntax and Routing - low-level message parsing and connection management
  • RFC7231 - HTTP/1.1: Semantics and Content - methods, status codes and headers
  • RFC7232 - HTTP/1.1: Conditional Requests - e.g., If-Modified-Since
  • RFC7233 - HTTP/1.1: Range Requests - getting partial content
  • RFC7234 - HTTP/1.1: Caching - browser and intermediary caches
  • RFC7235 - HTTP/1.1: Authentication - a framework for HTTP authentication

早在 2007 年,IETF 内部就成立了名为 HTTPbis 的工作小组来完成对 HTTP/1.1 的修订,他们的目标是让 HTTP/1.1 协议规范更加清晰易读,而不是添加新特性或者升级协议。在整个协议的修订过程中,小组成员共发布了 26 个草稿版本,修改次数超过 2600 次,处理了 550 多个问题。在文档整理过程中,HTTPbis 也对 HTTP/1.1 协议的一些不合理或者不安全的地方进行了改进,Evert 在其博客上总结了此次更新中的一些重大变化:

  1. 对如何处理不应该出现的空格进行了规定,将修复 HTTP Response Splitting 漏洞
  2. 移除每个服务器两个连接的限制
  3. 不再支持 HTTP/0.9
  4. 默认编码不再是 ISO-8859-1
  5. 服务器不再被强制要求处理所有 Content-* 请求头内容
  6. PUT 请求头禁止使用 Content-Range
  7. 如果请求头中 Referer 不存在,建议使用 about:blank,以便对“没有 Referer”和“我不想发送 Referer”加以区别
  8. 状态码 204, 404, 405, 414 和 501 现在可以缓存了(cachable)
  9. 状态码 301 和 302 现在允许用户代理(user-agent)将请求方式从 POST 改为 GET。虽然原标准不允许,但其实人们早就在这样做了,标准迎合现实,这就是个很好的例子。
  10. 请求头的 Location 现在可以包含相对 URI 和片段标识符(fragment identifiers)
  11. Content-MD5 被移除

更多详细的改进内容请读者阅读 RFC 中的 Changes from RFC 2616 部分。

2014-06-09 03:3711209
用户头像

发布了 219 篇内容, 共 134.9 次阅读, 收获喜欢 190 次。

关注

评论

发布
暂无评论
发现更多内容

直播预告:京东云DevOps与JFrog制品库的融合

京东科技开发者

DevOps 制品库管理 运维开发

微型博客开发项目,手动创建导航组件的新增页面

梦想橡皮擦

9月日更

Retrofit源码解读HTTP

Changing Lin

android 9月日更

TLS协议分析 (四) handshake协议概览

OpenIM

学习Linux tar 命令:最简单也最困难

华为云开发者联盟

Linux 文件 Linux tar tar命令 存档

模块(三)如何设计出合理的架构

我是一只小小鸟

从 CI_CD 到 DevOps

SoFlu软件机器人

DevOps 自动化 基础软件

Rust从0到1-高级特性-宏

rust 高级特性 Macros

论亚马逊QLDB与腾讯TDSQL对历史数据的管理和计算

腾讯云数据库

数据库 tdsql

搞懂现代Web端即时通讯技术一文就够:WebSocket、socket.io、SSE

JackJiang

websocket 即时通讯 IM

TLS协议分析 (三) record协议

OpenIM

带你认识数据库视图对象,下次不要再认成“表”了

华为云开发者联盟

数据库 sql 对象 视图 GaussDB(DWS)

EMQ 映云科技与 RT-Thread 达成战略合作,共建产业物联网平台

EMQ映云科技

人工智能 云计算 大数据 物联网 emq

如何在AI工程实践中选择合适的算法?

博文视点Broadview

终于,基础软件领域的行业盛会来了!

Jessie

开源 云原生 基础软件 中间件 #数据库

【VueRouter 源码学习】第五篇 - 两种路由模式的设计

Brave

源码 vue-router 9月日更

TLS协议分析 (五) handshake协议 证书与密钥交换

OpenIM

从源码角度分析 MyBatis 工作原理

vivo互联网技术

sql mybatis JDBC ORM

Vue进阶(壹佰):当前页面刷新并重载页面数据

No Silver Bullet

Vue 9月日更

GetX代码生成IDEA插件,超详细功能讲解(透过现象看本质)

小呆呆666

腾讯云 TDSQL 审计原理揭秘

腾讯云数据库

数据库 tdsql

Vue进阶(九十九):页面锚点至顶部

No Silver Bullet

Vue 9月日更

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

华为云开发者联盟

华为云数据库 时序数据 深度神经网络算法 DAEMON 轨迹分析

朋友圈架构设计

XP

为数据赋能:腾讯TDSQL分布式金融级数据库前沿技术 - 云+社区 - 腾讯云

腾讯云数据库

数据库 tdsql

【LeetCode】分割平衡字符串Java题解

Albert

算法 LeetCode 9月日更

颇具年代感的《JMeter中文操作手册》

FunTester

Jmeter 性能测试 自动化测试 接口测试 FunTester

LeetCode题解:897. 递增顺序搜索树,栈,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

使用GO语言实现Mysql数据库CURD

Regan Yue

数据库 Go 语言 9月日更

学会这5种JS函数继承方式,前端面试你至少成功50%

华为云开发者联盟

面试 大前端 js 继承 函数继承

【Flutter 专题】54 图解基本生命周期

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

HTTP/1.1协议更新:RFC 2616遭废弃_DevOps & 平台工程_小盖_InfoQ精选文章