Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 1116747 of HTTP

  • 版本网址缩略名: Web/HTTP
  • 版本标题: HTTP
  • 版本 id: 1116747
  • 创建于:
  • 创建者: cissoid
  • 是否是当前版本?
  • 评论 翻译, 完成剩余翻译.
标签: 

修订内容

{{ HTTPSidebar }}

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

教程

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

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

参考

浏览详细的 HTTP 参考文档。

HTTP 首部
HTTP 消息首部被用来精确描述资源信息, 或是客户端和服务器的行为. 自定义的专有首部可以加上 'X-' 前缀;  其他的可以在 IANA registry 找到, 其原始定义参见 RFC 4229. IANA 同时也维护着一份 registry of proposed new HTTP message headers.
HTTP 请求方法
可以使用 HTTP: {{HTTPMethod("GET")}}, {{HTTPMethod("POST")}} 方法来完成不同操作, 同时也有一些其他的方法, 如 {{HTTPMethod("OPTIONS")}}, {{HTTPMethod("DELETE")}} 和 {{HTTPMethod("TRACE")}}.
HTTP 状态返回码
HTTP 状态返回码用来表示指定的 HTTP 请求是否成功完成. 响应被分为 5 种类型: 消息型响应, 成功响应, 重定向, 客户端错误和服务器错误.

工具与资源

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

Firefox 开发者工具
网络监视器
RedBot
一个检查 Cache 相关的 HTTP 首部的工具.

修订版来源

<div>{{ HTTPSidebar }}</div>

<p class="summary"><strong><dfn>超文本传输协议&nbsp;(HTTP)</dfn></strong>&nbsp;是一种传输如 HTML 等超媒体文件的<a href="https://zh.wikipedia.org/wiki/%E5%BA%94%E7%94%A8%E5%B1%82">应用层</a>协议。起初设计它的目的主要用于 Web 浏览器与 Web 服务器之间的通信,当然现在它还可以用做其它目的。该协议遵循<a href="https://en.wikipedia.org/wiki/Client%E2%80%93server_model">客户端-服务端的模型</a>,客户端打开连接,发送一个请求,然后等待接收服务器端的响应。HTTP 协议也是一个<a href="https://en.wikipedia.org/wiki/Stateless_protocol">无状态协议</a>,这就意味着服务并不能保留两个请求的之间的数据(状态)。尽管 HTTP 协议通常是基于 TCP/IP 的, 但它实际上可以在任何可靠的<a href="https://zh.wikipedia.org/wiki/%E4%BC%A0%E8%BE%93%E5%B1%82">传输层</a>协议上使用,所谓可靠的协议就是指那些不会隐式丢弃消息的协议。</p>

<div class="column-container">
<div class="column-half">
<h2 id="教程">教程</h2>

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

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

<div class="column-half">
<h2 id="参考">参考</h2>

<p>浏览详细的 HTTP 参考文档。</p>

<dl>
 <dt><a href="/zh-CN/docs/Web/HTTP/Headers">HTTP 首部</a></dt>
 <dd>HTTP 消息首部被用来精确描述资源信息, 或是客户端和服务器的行为.&nbsp;自定义的专有首部可以加上 'X-' 前缀; &nbsp;其他的可以在&nbsp;<a class="external" href="https://www.iana.org/assignments/message-headers/perm-headers.html">IANA registry</a>&nbsp;找到, 其原始定义参见&nbsp;<a class="external" href="https://tools.ietf.org/html/rfc4229">RFC 4229</a>. IANA 同时也维护着一份&nbsp;<a class="external" href="https://www.iana.org/assignments/message-headers/prov-headers.html">registry of proposed new HTTP message headers</a>.</dd>
 <dt><a href="/zh-CN/docs/Web/HTTP/Methods">HTTP 请求方法 </a></dt>
 <dd>可以使用 HTTP: {{HTTPMethod("GET")}}, {{HTTPMethod("POST")}} 方法来完成不同操作, 同时也有一些其他的方法, 如 {{HTTPMethod("OPTIONS")}}, {{HTTPMethod("DELETE")}} 和&nbsp;{{HTTPMethod("TRACE")}}.</dd>
 <dt><a href="/zh-CN/docs/Web/HTTP/Response_codes">HTTP 状态返回码 </a></dt>
 <dd>HTTP 状态返回码用来表示指定的 HTTP 请求是否成功完成. 响应被分为 5 种类型: 消息型响应, 成功响应, 重定向, 客户端错误和服务器错误.</dd>
</dl>

<h2 id="工具与资源">工具与资源</h2>

<p>使用和调试你的 HTTP 连接很有用的工具。</p>

<dl>
 <dt><a href="/zh-CN/docs/Tools">Firefox 开发者工具 </a></dt>
 <dd><a href="/zh-CN/docs/Tools/Network_Monitor">网络监视器</a></dd>
 <dt><a href="https://redbot.org/">RedBot</a></dt>
 <dd>一个检查 Cache 相关的 HTTP 首部的工具.</dd>
</dl>
</div>
</div>
恢复到这个版本