HTTP/1.1协议重大更新
jopen 10年前
新的标准更易懂,易读,对原来语义模糊的部分进行了解释。核心被分为6个单独文档,原来只有2个,即RFC 2616和RFC 2617
此次改动的不完全清单:
- 对如何处理不应该出现的空格进行了规定,将能修复HTTP Response Splitting漏洞
- 每服务器两个连接的限制被移除
- 不再支持HTTP/0.9
- 默认编码不再是ISO-8859-1
- 服务器不再被强制要求处理所有Content-*请求头内容
- PUT请求头禁止使用Content-Range
- 如果引用页不存在,建议在请求头里使用 about:blank这个URI,以便对“没有引用页”和“我不想发送引用页”加以区别
- 状态码204, 404, 405, 414 和501现在可以缓存了(cachable)
- 状态码301和302现在允许用户代理(user-agent)将请求方式从POST改为GET。虽然原标准不允许,但人们其实早就在这样做了,标准适应现实,这是个很好的例子。
- 请求头的Location现在可以包含相对URI和片段标识符(fragment identifiers)
- Content-MD5被移除
附上新的标准清单:
* 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