1989年, 当时 Tim Berners-Lee 博士写了一份关于建立一个通过网络传输超文本系统的报告:万维网(World Wide Web)。它在现有的TCP和IP协议基础之上建立,由四个部分组成:
- 一个用来表示超文本文档的文本格式,超文本标记语言(HTML)。
- 一个用来交换超文本文档的简单协议,超文本传输协议(HTTP)。
- 一个显示/编辑超文本文档的客户端,即网络浏览器。
- 一个服务器用于提供可访问的文档,即 httpd 的前身。
这四个部分完成于1990年底,且第一批服务器已经在1991年初在CERN以外的地方运行了。
HTTP/0.9 单行协议
GET /mypage.html
HTTP/1.0 构建可扩展性
由于 HTTP/0.9 协议的应用十分有限,浏览器和服务器迅速扩展内容使其用途更广:
- 协议版本信息现在会随着每个请求发送(HTTP/1.0被追加到了GET行)。
- 状态码会在响应开始时发送,使浏览器能了解请求执行成功或失败,并相应调整行为(如更新或使用本地缓存)。
- 引入了HTTP头的概念,无论是对于请求还是响应,允许传输元数据,使协议变得非常灵活,更具扩展性。
- 在新HTTP头的帮助下,具备了传输除纯文本HTML文件以外其他类型文档的能力(感谢Content-Type头)。
HTTP/1.1 – 标准化的协议
HTTP/1.0 多种不同的实现方式在实际运用中显得有些混乱,自1995年开始,即HTTP/1.0文档发布的下一年,就开始修订HTTP的第一个标准化版本。在1997年初,HTTP1.1 标准发布,就在HTTP/1.0 发布的几个月后。HTTP/1.1 消除了大量歧义内容并引入了多项改进:
- 连接可以复用,节省了多次打开TCP连接加载网页文档资源的时间。
- 增加管线化技术,允许在第一个应答被完全发送之前就发送第二个请求,以降低通信延迟。
- 支持响应分块。
- 引入额外的缓存控制机制。
- 引入内容协商机制,包括语言,编码,类型等,并允许客户端和服务器之间约定以最合适的内容进行交换。
- 感谢Host头,能够使不同域名配置在同一个IP地址的服务器上。
其他
HTTP 用于安全传输、用于复杂应用 restfull模式 RESTful API 在 2010 年变得非常流行。
放松的web的安全模型。 http和web的安全模型-同源策略是互不相关的。