blob: 2e95cc9f48042b86142b85fb1e73df6c07d5dc11 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
---
title: HTTP
slug: Web/HTTP
tags:
- HTTP
- TCP/IP
- Web
- Web 开发
- 'l10n:priority'
- 参考
translation_of: Web/HTTP
---
<div>{{HTTPSidebar}}</div>
<p class="summary"><strong><dfn>超文本传输协议(HTTP)</dfn></strong>是一个用于传输超媒体文档(例如 HTML)的<a href="https://en.wikipedia.org/wiki/Application_Layer">应用层</a>协议。它是为 Web 浏览器与 Web 服务器之间的通信而设计的,但也可以用于其他目的。HTTP 遵循经典的<a href="https://en.wikipedia.org/wiki/Client%E2%80%93server_model">客户端-服务端模型</a>,客户端打开一个连接以发出请求,然后等待直到收到服务器端响应。HTTP 是<a href="http://en.wikipedia.org/wiki/Stateless_protocol">无状态协议</a>,这意味着服务器不会在两个请求之间保留任何数据(状态)。尽管通常基于 TCP/IP 层,但它可以在任何可靠的<a href="https://zh.wikipedia.org/wiki/%E4%BC%A0%E8%BE%93%E5%B1%82">传输层</a>上使用,也就是说,该协议不会像 UDP 那样静默的丢失消息。<a href="https://en.wikipedia.org/wiki/Reliable_User_Datagram_Protocol">RUDP</a>——作为 UDP 的可靠化升级版本——是一种合适的替代选择。</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/Caching_FAQ">HTTP 缓存</a></dt>
<dd>缓存对高速 Web 站点来说是非常之重要的。这篇文章阐述了不同种类的缓存以及如何配置 HTTP Headers 来控制它们。</dd>
<dt><a href="/zh-CN/docs/Web/HTTP/Cookies">HTTP Cookie</a></dt>
<dd><a href="http://tools.ietf.org/html/rfc6265">RFC 6265</a> 定义了 cookie 的工作方式。<font><font>在处理 HTTP 请求时,服务器可以在 HTTP 响应头中通过</font></font>HTTP Headers<font><font> </font></font><code>Set-Cookie</code> <font><font>为客户端设置 cookie。</font></font>然后,对于同一服务器发起的每一个请求,客户端都会在 HTTP 请求头中以字段 <code>Cookie</code> 的形式将 cookie 的值发送过去。也可以将 cookie 设置为在特定日期过期,或限制为特定的域和路径。</dd>
<dt><a href="/zh-CN/docs/Web/HTTP/Access_control_CORS">跨域资源共享(CORS) </a></dt>
<dd><strong>跨站点 HTTP 请求</strong>就是从<strong>另一个域名</strong>,而不是资源所在的域名发起的 HTTP 请求。举例来说,在域名 A (<code>http://domaina.example/</code>) 的 HTML 页面上使用 <code>img</code> 元素 (<code><img src="http://domainb.foo/image.jpg"></code>) 来请求域名 B (http://domainb.foo/) 上的图片资源。这在当今的 Web 页面上是很常见的 —— 加载跨站点资源,包括 CSS 样式表,图片,脚本和其他资源。CORS 允许 Web 开发人员控制其站点对跨站点请求的反应。</dd>
<dt><a href="/zh-CN/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP">HTTP 的演变</a></dt>
<dd>简单描述了从早期版本的 HTTP 到现代 HTTP/2,新兴的 HTTP/3 以及未来版本的 HTTP 这个过程中发生的变更。</dd>
<dt><a href="https://wiki.mozilla.org/Security/Guidelines/Web_Security">Mozilla Web 安全准则</a></dt>
<dd>一系列用于帮助运营团队创建安全的 Web 应用程序的技巧。</dd>
<dt><a href="/zh-CN/docs/Web/HTTP/Messages">HTTP 消息 </a></dt>
<dd>描述了 HTTP/1.x 和 HTTP/2 中不同种类消息的类型和结构。</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>
</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 消息头用于描述资源或服务器或客户端的行为。<font><font>可以使用 </font></font><code>X-</code><font><font> 前缀添加自定义专有头。</font></font>其他的可以在 <a class="external" href="https://www.iana.org/assignments/message-headers/message-headers.xhtml#perm-headers">IANA registry</a> 中找到,其原始定义在 <a class="external" href="https://tools.ietf.org/html/rfc4229">RFC 4229</a>。IANA 同时也维护着一份 <a class="external" href="https://www.iana.org/assignments/message-headers/message-headers.xhtml#prov-headers">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")}} 和 {{HTTPMethod("TRACE")}}。</dd>
<dt><a href="/zh-CN/docs/Web/HTTP/Response_codes">HTTP 状态码 </a></dt>
<dd>HTTP 状态码用来表示特定的 HTTP 请求是否已成功完成。响应分为五类:消息响应,成功响应,重定向,客户端错误和服务器错误。</dd>
<dt><a href="/en-US/docs/Web/HTTP/Headers/Content-Security-Policy">CSP 指令</a></dt>
<dd>{{HTTPHeader("Content-Security-Policy")}} 响应报头字段允许网站管理员控制页面上哪些资源能够被用户代理程序加载。除了少数例外,此策略主要涉及指定服务器来源和脚本终端。</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://observatory.mozilla.org/">Mozilla Observatory</a></dt>
<dd>一个旨在帮助开发人员,系统管理员和安全专业人员安全地配置其站点的项目。</dd>
<dt><a href="https://redbot.org/">RedBot</a></dt>
<dd>用于检查与缓存相关的 HTTP 头的工具。</dd>
<dt><a href="https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/">浏览器的工作原理</a></dt>
<dd>一篇非常全面的关于浏览器内部实现与通过 HTTP 协议的请求流的文章。可以说是所有 Web 开发者的<strong>必读内容</strong>。</dd>
</dl>
</div>
</div>
|