这篇文章需要技术复核。如何帮忙。

这篇文章需要文法复核。如何帮忙。

这篇翻译不完整。请帮忙从英语翻译这篇文章

超文本传输协议 (HTTP) 是一种传输如 HTML 等超媒体文件的应用层协议。起初设计它的目的主要用于 Web 浏览器与 Web 服务器之间的通信,当然现在它还可以用做其它目的。该协议遵循客户端-服务端的模型,客户端打开连接,发送一个请求,然后等待接收服务器端的响应。HTTP 协议也是一个无状态协议,这就意味着服务并不能保留两个请求的之间的数据(状态)。尽管 HTTP 协议通常是基于 TCP/IP 的, 但它实际上可以在任何可靠的传输层协议上使用,所谓可靠的协议就是指那些不会隐式丢弃消息的协议。

教程

通过以下指南和教程来学习如何使用 HTTP。

HTTP 概述
介绍了客户-服务器端协议的基本特征:它能够做什么以及它的设计意图。
HTTP 缓存
缓存是搭建高性能网站的主要工具。这篇文章阐述了不同种类的缓存以及如何配置 HTTP 首部来控制它们。
HTTP Cookie
RFC 6265 定义了 cookies 是怎样工作的。 当接收到一个 HTTP请求时,服务器可以在响应中发送一个 Set-Cookie 首部字段。接着,对于同一台服务器发起的每一个请求,客户端都会在 HTTP 请求头中以字段 Cookie 的形式将 cookie 的值发送过去。 此外,还可以指定一个过期时间。cookie 也可以被限制于指定的域名和路径中使用。
HTTP 访问控制(CORS)
跨站点 HTTP 请求就是从另一个域名, 而不是资源所在的域名发起的 HTTP 请求. 举例来说, 在域名 A (http://domaina.example/) 的 HTML 页面上使用 img 元素 (<img src="http://domainb.foo/image.jpg">) 来请求域名 B (http://domainb.foo/) 上的图片资源.这在当前的 web 页面上很常见 —— 页面通过跨域规则加载 CSS 样式表, 图片, 脚本以及其他资源.
HTTP 演变
简单描述了 HTTP 协议从早期版本到现在的 HTTP/2 以及更新版本的发展过程中所发生的变化。
HTTP 消息
描述了 HTTP/1.x 和 HTTP/2.x 中不同种类消息的类型和结构。
一个典型的 HTTP 会话
展现并解释了一个常见的 HTTP 会话流程。
HTTP/1.x中的连接管理
描述了在HTTP/1.x中的三种连接管理模型,以及它们的优势和劣势。
控制DNS预读取
Firefox 和大多数其他现代浏览器都提供了 DNS 预读取特性. 即对于用户可能点击的链接, 或文档中引用的图片, CSS 和 JavaScript 脚本, 浏览器会主动获取它们的域名解析消息. 这种预读取是在后台进行的, 因此当真正请求这些资源时,  其 DNS 信息往往已经解析完成了. 这会降低用户点击链接等操作时的延迟.

参考

浏览详细的 HTTP 参考文档。

HTTP 首部
HTTP 消息首部被用来精确描述资源信息, 或是客户端和服务器的行为. 自定义的专有首部可以加上 'X-' 前缀;  其他的可以在 IANA registry 找到, 其原始定义参见 RFC 4229. IANA 同时也维护着一份 registry of proposed new HTTP message headers.
HTTP 请求方法
可以使用 HTTP: GET, POST 方法来完成不同操作, 同时也有一些其他的方法, 如 OPTIONS, DELETE 和 TRACE.
HTTP 状态返回码
HTTP 状态返回码用来表示指定的 HTTP 请求是否成功完成. 响应被分为 5 种类型: 消息型响应, 成功响应, 重定向, 客户端错误和服务器错误.
CSP 指令
Content-Security-Policy 响应头字段允许站点的管理者控制页面上哪些资源能够被用户代理程序加载。With a few exceptions, policies mostly involve specifying server origins and script endpoints.

工具与资源

使用和调试你的 HTTP 连接很有用的工具。

Firefox 开发者工具
网络监视器
RedBot
一个检查 Cache 相关的 HTTP 首部的工具.
浏览器的工作原理
一篇关于浏览器内部实现与通过 HTTP 协议的请求流的文章,是所有 web 开发者的必读内容。

文档标签和贡献者

标签: 
 此页面的贡献者: sunnylost, cissoid, TomasRan, DreamerKing, Ende93, ziyunfei
 最后编辑者: sunnylost,