diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:40:17 -0500 |
commit | 33058f2b292b3a581333bdfb21b8f671898c5060 (patch) | |
tree | 51c3e392513ec574331b2d3f85c394445ea803c6 /files/zh-cn/web/http/methods | |
parent | 8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff) | |
download | translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2 translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip |
initial commit
Diffstat (limited to 'files/zh-cn/web/http/methods')
-rw-r--r-- | files/zh-cn/web/http/methods/connect/index.html | 85 | ||||
-rw-r--r-- | files/zh-cn/web/http/methods/delete/index.html | 103 | ||||
-rw-r--r-- | files/zh-cn/web/http/methods/get/index.html | 71 | ||||
-rw-r--r-- | files/zh-cn/web/http/methods/head/index.html | 77 | ||||
-rw-r--r-- | files/zh-cn/web/http/methods/index.html | 71 | ||||
-rw-r--r-- | files/zh-cn/web/http/methods/options/index.html | 122 | ||||
-rw-r--r-- | files/zh-cn/web/http/methods/patch/index.html | 97 | ||||
-rw-r--r-- | files/zh-cn/web/http/methods/post/index.html | 120 | ||||
-rw-r--r-- | files/zh-cn/web/http/methods/put/index.html | 101 | ||||
-rw-r--r-- | files/zh-cn/web/http/methods/trace/index.html | 77 |
10 files changed, 924 insertions, 0 deletions
diff --git a/files/zh-cn/web/http/methods/connect/index.html b/files/zh-cn/web/http/methods/connect/index.html new file mode 100644 index 0000000000..580b9b13f7 --- /dev/null +++ b/files/zh-cn/web/http/methods/connect/index.html @@ -0,0 +1,85 @@ +--- +title: CONNECT +slug: Web/HTTP/Methods/CONNECT +tags: + - 请求方法 + - 隧道 +translation_of: Web/HTTP/Methods/CONNECT +--- +<div>{{HTTPSidebar}}</div> + +<p>在 HTTP 协议中,<strong><code>CONNECT</code> </strong>方法可以开启一个客户端与所请求资源之间的双向沟通的通道。它可以用来创建隧道(tunnel)。</p> + +<p>例如,<strong><code>CONNECT</code> </strong>可以用来访问采用了 {{Glossary("SSL")}} ({{Glossary("HTTPS")}}) 协议的站点。客户端要求代理服务器将 TCP 连接作为通往目的主机隧道。之后该服务器会代替客户端与目的主机建立连接。连接建立好之后,代理服务器会面向客户端发送或接收 TCP 消息流。</p> + +<p><code>CONNECT</code> 是一个应用范围为点到点的方法。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Request has body</th> + <td>No</td> + </tr> + <tr> + <th scope="row">Successful response has body</th> + <td>Yes</td> + </tr> + <tr> + <th scope="row">{{Glossary("Safe")}}</th> + <td>No</td> + </tr> + <tr> + <th scope="row">{{Glossary("Idempotent")}}</th> + <td>No</td> + </tr> + <tr> + <th scope="row">{{Glossary("Cacheable")}}</th> + <td>No</td> + </tr> + <tr> + <th scope="row">Allowed in <a href="/en-US/docs/Web/Guide/HTML/Forms">HTML forms</a></th> + <td>No</td> + </tr> + </tbody> +</table> + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox">CONNECT www.example.com:443 HTTP/1.1 +</pre> + +<h2 id="示例">示例</h2> + +<p>一些代理服务器在创建隧道时会要求进行身份验证。参见 {{HTTPHeader("Proxy-Authorization")}} 首部。</p> + +<pre class="line-numbers language-html">CONNECT server.example.com:80 HTTP/1.1 +Host: server.example.com:80 +Proxy-Authorization: basic aGVsbG86d29ybGQ=</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + <tr> + <td>{{RFC("7231", "CONNECT", "4.3.6")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.methods.CONNECT")}}</p> + +<h2 id="相关内容">相关内容</h2> + +<ul> + <li>{{Glossary("Proxy server")}}</li> + <li>{{HTTPHeader("Proxy-Authorization")}}</li> +</ul> diff --git a/files/zh-cn/web/http/methods/delete/index.html b/files/zh-cn/web/http/methods/delete/index.html new file mode 100644 index 0000000000..5da1185b7c --- /dev/null +++ b/files/zh-cn/web/http/methods/delete/index.html @@ -0,0 +1,103 @@ +--- +title: DELETE +slug: Web/HTTP/Methods/DELETE +tags: + - HTTP + - HTTP方法 + - 参考 + - 请求方法 +translation_of: Web/HTTP/Methods/DELETE +--- +<div>{{HTTPSidebar}}</div> + +<p><strong>HTTP DELETE </strong>请求方法用于删除指定的资源。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">请求是否有主体</th> + <td>可以有</td> + </tr> + <tr> + <th scope="row">成功的返回是否有主体</th> + <td>可以有</td> + </tr> + <tr> + <th scope="row">{{Glossary("安全")}}</th> + <td>否</td> + </tr> + <tr> + <th scope="row">{{Glossary("幂等")}}</th> + <td>是</td> + </tr> + <tr> + <th scope="row">{{Glossary("可缓存")}}</th> + <td>否</td> + </tr> + <tr> + <th scope="row">可以在<a href="/en-US/docs/Web/Guide/HTML/Forms">HTML forms</a>中使用</th> + <td>否</td> + </tr> + </tbody> +</table> + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox">DELETE /file.html HTTP/1.1 +</pre> + +<h2 id="示例">示例</h2> + +<h3 id="请求">请求</h3> + +<pre>DELETE /file.html HTTP/1.1</pre> + +<h3 id="响应">响应</h3> + +<p>如果 <code>DELETE </code>方法成功执行,那么可能会有以下几种状态码:</p> + +<ul> + <li>状态码 {{HTTPStatus("202")}} (<code>Accepted</code>) 表示请求的操作可能会成功执行,但是尚未开始执行。</li> + <li>状态码 {{HTTPStatus("204")}} (<code>No Content</code>) 表示操作已执行,但是无进一步的相关信息。</li> + <li>状态码 {{HTTPStatus("200")}} (<code>OK</code>) 表示操作已执行,并且响应中提供了相关状态的描述信息。</li> +</ul> + +<pre>HTTP/1.1 200 OK +Date: Wed, 21 Oct 2015 07:28:00 GMT + +<html> + <body> + <h1>File deleted.</h1> + </body> +</html></pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + <tr> + <td>{{RFC("7231", "DELETE", "4.3.5")}}</td> + <td> + <p>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</p> + </td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">Browser compatibility</h2> + +<p>{{Compat("http.methods.DELETE")}}</p> + +<h2 id="相关内容">相关内容</h2> + +<ul> + <li>HTTP status: {{HTTPStatus("200")}}, {{HTTPStatus("202")}}, {{HTTPStatus("204")}}</li> +</ul> + +<p> </p> + +<p> </p> diff --git a/files/zh-cn/web/http/methods/get/index.html b/files/zh-cn/web/http/methods/get/index.html new file mode 100644 index 0000000000..5f59bd2423 --- /dev/null +++ b/files/zh-cn/web/http/methods/get/index.html @@ -0,0 +1,71 @@ +--- +title: GET +slug: Web/HTTP/Methods/GET +tags: + - HTTP + - 参考 + - 请求方法 +translation_of: Web/HTTP/Methods/GET +--- +<div>{{HTTPSidebar}}</div> + +<p><strong>HTTP<code> GET</code> 方法</strong>请求指定的资源。使用 <code>GET</code> 的请求应该只用于获取数据。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">请求是否有主体</th> + <td>否</td> + </tr> + <tr> + <th scope="row">成功的响应是否有主体</th> + <td>是</td> + </tr> + <tr> + <th scope="row">{{Glossary("安全")}}</th> + <td>是</td> + </tr> + <tr> + <th scope="row">{{Glossary("幂等")}}</th> + <td>是</td> + </tr> + <tr> + <th scope="row">{{Glossary("可缓存")}}</th> + <td>是</td> + </tr> + <tr> + <th scope="row">HTML 表单是否支持</th> + <td>是</td> + </tr> + </tbody> +</table> + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox">GET /index.html +</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">规范</th> + <th scope="col">标题</th> + </tr> + <tr> + <td>{{RFC("7231", "GET", "4.3.1")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<p>{{Compat("http.methods.GET")}}</p> + +<h2 id="另见">另见</h2> + +<ul> + <li>{{HTTPHeader("Range")}}</li> +</ul> diff --git a/files/zh-cn/web/http/methods/head/index.html b/files/zh-cn/web/http/methods/head/index.html new file mode 100644 index 0000000000..5b48e1a727 --- /dev/null +++ b/files/zh-cn/web/http/methods/head/index.html @@ -0,0 +1,77 @@ +--- +title: HEAD +slug: Web/HTTP/Methods/HEAD +tags: + - HTTP + - 参考 + - 请求方法 +translation_of: Web/HTTP/Methods/HEAD +--- +<div>{{HTTPSidebar}}</div> + +<p><strong>HTTP <code>HEAD</code> 方法</strong> 请求资源的头部信息, 并且这些头部与 HTTP {{HTTPMethod("GET")}} 方法请求时返回的一致. 该请求方法的一个使用场景是在下载一个大文件前先获取其大小再决定是否要下载, 以此可以节约带宽资源.</p> + +<p><code>HEAD</code> 方法的响应不应包含响应正文. 即使包含了正文也必须忽略掉. 虽然描述正文信息的 {{glossary("Entity header", "entity headers")}}, 例如 {{HTTPHeader("Content-Length")}} 可能会包含在响应中, 但它们并不是用来描述 <code>HEAD</code> 响应本身的, 而是用来描述同样情况下的 {{HTTPMethod("GET")}} 请求应该返回的响应.</p> + +<p>如果 <code>HEAD</code> 请求的结果显示在上一次 {{HTTPMethod("GET")}} 请求后缓存的资源已经过期了, 即使没有发出{{HTTPMethod("GET")}}请求,缓存也会失效</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">请求是否有正文</th> + <td>否</td> + </tr> + <tr> + <th scope="row">成功的响应是否有正文</th> + <td>否</td> + </tr> + <tr> + <th scope="row">{{Glossary("安全")}}</th> + <td>是</td> + </tr> + <tr> + <th scope="row">{{Glossary("幂等")}}</th> + <td>是</td> + </tr> + <tr> + <th scope="row">{{Glossary("可缓存")}}</th> + <td>是</td> + </tr> + <tr> + <th scope="row"><a href="/en-US/docs/Web/Guide/HTML/Forms">HTML 表单</a> 是否支持</th> + <td>否</td> + </tr> + </tbody> +</table> + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox notranslate">HEAD /index.html +</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">规范</th> + <th scope="col">标题</th> + </tr> + <tr> + <td>{{RFC("7231", "HEAD", "4.3.2")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.methods.HEAD")}}</p> + +<h2 id="另见">?另见</h2> + +<ul> + <li>{{HTTPMethod("GET")}}</li> +</ul> diff --git a/files/zh-cn/web/http/methods/index.html b/files/zh-cn/web/http/methods/index.html new file mode 100644 index 0000000000..6f926a633d --- /dev/null +++ b/files/zh-cn/web/http/methods/index.html @@ -0,0 +1,71 @@ +--- +title: HTTP 请求方法 +slug: Web/HTTP/Methods +tags: + - Browser support for JavaScript APIs + - HTTP + - 'HTTP Methods: GET vs. POST' + - Methods + - Reference + - Safe and Idempotent Methods + - methods for HTTP/1.1 + - '词汇表:幂等 可缓存' +translation_of: Web/HTTP/Methods +--- +<p>{{HTTPSidebar}}</p> + +<p>HTTP 定义了一组<strong>请求方法</strong>, 以表明要对给定资源执行的操作。指示针对给定资源要执行的期望动作. 虽然他们也可以是名词, 但这些请求方法有时被称为HTTP动词. 每一个请求方法都实现了不同的语义, 但一些共同的特征由一组共享:: 例如一个请求方法可以是 {{glossary("safe")}}, {{glossary("idempotent")}}, 或 {{glossary("cacheable")}}.</p> + +<dl> + <dt><code><a href="/en-US/docs/Web/HTTP/Methods/GET">GET</a></code></dt> + <dd>GET方法请求一个指定资源的表示形式. 使用GET的请求应该只被用于获取数据.</dd> + <dt><code><a href="/en-US/docs/Web/HTTP/Methods/HEAD">HEAD</a></code></dt> + <dd>HEAD方法请求一个与GET请求的响应相同的响应,但没有响应体.</dd> + <dt><code><a href="/en-US/docs/Web/HTTP/Methods/POST">POST</a></code></dt> + <dd>POST方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用. </dd> + <dt><code><a href="/en-US/docs/Web/HTTP/Methods/PUT">PUT</a></code></dt> + <dd>PUT方法用请求有效载荷替换目标资源的所有当前表示。</dd> + <dt><code><a href="/en-US/docs/Web/HTTP/Methods/DELETE">DELETE</a></code></dt> + <dd>DELETE方法删除指定的资源。</dd> + <dt><code><a href="/en-US/docs/Web/HTTP/Methods/CONNECT">CONNECT</a></code></dt> + <dd>CONNECT方法建立一个到由目标资源标识的服务器的隧道。</dd> + <dt><code><a href="/en-US/docs/Web/HTTP/Methods/OPTIONS">OPTIONS</a></code></dt> + <dd>OPTIONS方法用于描述目标资源的通信选项。</dd> + <dt><code><a href="/en-US/docs/Web/HTTP/Methods/TRACE">TRACE</a></code></dt> + <dd>TRACE方法沿着到目标资源的路径执行一个消息环回测试。</dd> + <dt><code><a href="/en-US/docs/Web/HTTP/Methods/PATCH">PATCH</a></code></dt> + <dd>PATCH方法用于对资源应用部分修改。</dd> + <dt> + <h2 id="规范">规范</h2> + + <table> + <tbody> + <tr> + <th scope="col">规范</th> + <th scope="col">标题</th> + <th scope="col">注解</th> + </tr> + <tr> + <td>{{RFC("7231", "Request methods", "4")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + <td>Specifies GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE.</td> + </tr> + <tr> + <td>{{RFC("5789", "Patch method", "2")}}</td> + <td>PATCH Method for HTTP</td> + <td>Specifies PATCH.</td> + </tr> + </tbody> + </table> + </dt> +</dl> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<p>{{Compat}}</p> + +<h2 id="另见">另见</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Headers">HTTP headers</a></li> +</ul> diff --git a/files/zh-cn/web/http/methods/options/index.html b/files/zh-cn/web/http/methods/options/index.html new file mode 100644 index 0000000000..3537e8e1c3 --- /dev/null +++ b/files/zh-cn/web/http/methods/options/index.html @@ -0,0 +1,122 @@ +--- +title: OPTIONS +slug: Web/HTTP/Methods/OPTIONS +translation_of: Web/HTTP/Methods/OPTIONS +--- +<div>{{HTTPSidebar}}</div> + +<p><strong>HTTP 的 <code>OPTIONS 方法</code></strong> 用于获取目的资源所支持的通信选项。客户端可以对特定的 URL 使用 OPTIONS 方法,也可以对整站(通过将 URL 设置为“*”)使用该方法。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Request has body</th> + <td>No</td> + </tr> + <tr> + <th scope="row">Successful response has body</th> + <td>Yes</td> + </tr> + <tr> + <th scope="row">{{Glossary("Safe")}}</th> + <td>Yes</td> + </tr> + <tr> + <th scope="row">{{Glossary("Idempotent")}}</th> + <td>Yes</td> + </tr> + <tr> + <th scope="row">{{Glossary("Cacheable")}}</th> + <td>No</td> + </tr> + <tr> + <th scope="row">Allowed in HTML forms</th> + <td>No</td> + </tr> + </tbody> +</table> + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox notranslate">OPTIONS /index.html HTTP/1.1 +OPTIONS * HTTP/1.1 +</pre> + +<h2 id="示例">示例</h2> + +<h3 id="检测服务器所支持的请求方法">检测服务器所支持的请求方法</h3> + +<p>可以使用 OPTIONS 方法对服务器发起请求,以检测服务器支持哪些 HTTP 方法:</p> + +<pre class="notranslate">curl -X OPTIONS http://example.org -i</pre> + +<p>响应报文包含一个 {{HTTPHeader("Allow")}} 首部字段,该字段的值表明了服务器支持的所有 HTTP 方法:</p> + +<pre class="notranslate">HTTP/1.1 200 OK +Allow: OPTIONS, GET, HEAD, POST +Cache-Control: max-age=604800 +Date: Thu, 13 Oct 2016 11:45:00 GMT +Expires: Thu, 20 Oct 2016 11:45:00 GMT +Server: EOS (lax004/2813) +x-ec-custom-error: 1 +Content-Length: 0 +</pre> + +<h3 id="CORS_中的预检请求">CORS 中的预检请求</h3> + +<p>在 <a href="/zh-CN/docs/Web/HTTP/Access_control_CORS">CORS</a> 中,可以使用 OPTIONS 方法发起一个预检请求,以检测实际请求是否可以被服务器所接受。预检请求报文中的 {{HTTPHeader("Access-Control-Request-Method")}} 首部字段告知服务器实际请求所使用的 HTTP 方法;{{HTTPHeader("Access-Control-Request-Headers")}} 首部字段告知服务器实际请求所携带的自定义首部字段。服务器基于从预检请求获得的信息来判断,是否接受接下来的实际请求。</p> + +<pre class="notranslate">OPTIONS /resources/post-here/ HTTP/1.1 +Host: bar.other +Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 +Accept-Language: en-us,en;q=0.5 +Accept-Encoding: gzip,deflate +Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 +Connection: keep-alive +Origin: http://foo.example +Access-Control-Request-Method: POST +Access-Control-Request-Headers: X-PINGOTHER, Content-Type</pre> + +<p>服务器所返回的 {{HTTPHeader("Access-Control-Allow-Methods")}} 首部字段将所有允许的请求方法告知客户端。该首部字段与 {{HTTPHeader("Allow")}} 类似,但只能用于涉及到 CORS 的场景中。</p> + +<pre class="notranslate">HTTP/1.1 200 OK +Date: Mon, 01 Dec 2008 01:15:39 GMT +Server: Apache/2.0.61 (Unix) +Access-Control-Allow-Origin: http://foo.example +Access-Control-Allow-Methods: POST, GET, OPTIONS +Access-Control-Allow-Headers: X-PINGOTHER, Content-Type +Access-Control-Max-Age: 86400 +Vary: Accept-Encoding, Origin +Content-Encoding: gzip +Content-Length: 0 +Keep-Alive: timeout=2, max=100 +Connection: Keep-Alive +Content-Type: text/plain</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + <tr> + <td>{{RFC("7231", "OPTIONS", "4.3.7")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http/methods", "OPTIONS")}}</p> + +<h2 id="参见">参见</h2> + +<ul> + <li>{{HTTPHeader("Allow")}} header</li> + <li><a href="/zh-CN/docs/Web/HTTP/Access_control_CORS">CORS</a></li> +</ul> diff --git a/files/zh-cn/web/http/methods/patch/index.html b/files/zh-cn/web/http/methods/patch/index.html new file mode 100644 index 0000000000..a86b50d0f1 --- /dev/null +++ b/files/zh-cn/web/http/methods/patch/index.html @@ -0,0 +1,97 @@ +--- +title: PATCH +slug: Web/HTTP/Methods/PATCH +tags: + - HTTP + - HTTP method + - HTTP方法 + - 参考 + - 请求方法 +translation_of: Web/HTTP/Methods/PATCH +--- +<div>{{HTTPSidebar}}</div> + +<p>在HTTP协议中,请求方法 <strong>PATCH </strong> 用于对资源进行部分修改。</p> + +<p>在HTTP协议中, {{HTTPMethod("PUT")}} 方法已经被用来表示对资源进行整体覆盖, 而 {{HTTPMethod("POST")}} 方法则没有对标准的补丁格式的提供支持。不同于 <code>PUT </code>方法,而与 <code>POST </code>方法类似,<code>PATCH</code> 方法是非幂等的,这就意味着连续多个的相同请求会产生不同的效果。</p> + +<p>要判断一台服务器是否支持 <code>PATCH </code>方法,那么就看它是否将其添加到了响应首部 {{HTTPHeader("Allow")}} 或者 {{HTTPHeader("Access-Control-Allow-Methods")}} (在跨域访问的场合,CORS)的方法列表中 。</p> + +<p>另外一个支持 PATCH 方法的隐含迹象是 {{HTTPHeader("Accept-Patch")}} 首部的出现,这个首部明确了服务器端可以接受的补丁文件的格式。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Request has body</th> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Successful response has body</th> + <td>No</td> + </tr> + <tr> + <th scope="row">{{Glossary("Safe")}}</th> + <td>No</td> + </tr> + <tr> + <th scope="row">{{Glossary("Idempotent")}}</th> + <td>No</td> + </tr> + <tr> + <th scope="row">{{Glossary("Cacheable")}}</th> + <td>No</td> + </tr> + <tr> + <th scope="row">Allowed in <a href="/en-US/docs/Web/Guide/HTML/Forms">HTML forms</a></th> + <td>No</td> + </tr> + </tbody> +</table> + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox">PATCH /file.txt HTTP/1.1 +</pre> + +<h2 id="示例">示例</h2> + +<h3 id="请求">请求</h3> + +<pre class="line-numbers language-html">PATCH /file.txt HTTP/1.1 +Host: www.example.com +Content-Type: application/example +If-Match: "e0023aa4e" +Content-Length: 100 + +[description of changes]</pre> + +<h3 id="响应">响应</h3> + +<p> {{HTTPStatus("204")}} 状态码表示这是一个操作成功的响应,因为响应中不带有消息主体。</p> + +<pre class="newpage">HTTP/1.1 204 No Content +Content-Location: /file.txt +ETag: "e0023aa4f"</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + <tr> + <td>{{RFC("5789", "PATCH")}}</td> + <td>PATCH Method for HTTP</td> + </tr> + </tbody> +</table> + +<h2 id="相关内容">相关内容</h2> + +<ul> + <li>{{HTTPStatus("204")}}</li> + <li>{{HTTPHeader("Allow")}}, {{HTTPHeader("Access-Control-Allow-Methods")}}</li> + <li>{{HTTPHeader("Accept-Patch")}} – 用于明确服务器端可以接受的补丁文件的格式。</li> +</ul> diff --git a/files/zh-cn/web/http/methods/post/index.html b/files/zh-cn/web/http/methods/post/index.html new file mode 100644 index 0000000000..7521f6b0ee --- /dev/null +++ b/files/zh-cn/web/http/methods/post/index.html @@ -0,0 +1,120 @@ +--- +title: POST +slug: Web/HTTP/Methods/POST +tags: + - HTTP + - 参考 + - 请求方法 +translation_of: Web/HTTP/Methods/POST +--- +<div>{{HTTPSidebar}}</div> + +<p><strong>HTTP <code>POST</code> 方法</strong> 发送数据给服务器. 请求主体的类型由 {{HTTPHeader("Content-Type")}} 首部指定.</p> + +<p>PUT 和{{HTTPMethod("POST")}}方法的区别是,PUT方法是幂等的:连续调用一次或者多次的效果相同(无副作用)。连续调用同一个POST可能会带来额外的影响,比如多次提交订单。</p> + +<p>一个 <code>POST</code> 请求通常是通过 <a href="/en-US/docs/Web/Guide/HTML/Forms">HTML 表单</a>发送, 并返回服务器的修改结果. 在这种情况下, content type 是通过在 <dfn>{{HTMLElement("form")}} 元素中设置正确的 {{htmlattrxref("enctype", "form")}} 属性, 或是在 {{HTMLElement("input") }} 和 {{HTMLElement("button")}} 元素中设置 {{htmlattrxref("formenctype", "input")}} 属性来选择的</dfn>:</p> + +<ul> + <li><code>application/</code><dfn><code>x-www-form-urlencoded</code>: 数据被编码成以 <code>'&'</code> 分隔的键-值对, 同时以 <code>'='</code> 分隔键和值. 非字母或数字的字符会被 </dfn>{{glossary("percent-encoding")}}<dfn>: 这也就是为什么这种类型不支持二进制数据(应使用 <code>multipart/form-data</code> 代替).</dfn></li> + <li><dfn><code>multipart/form-data</code></dfn></li> + <li><dfn><code>text/plain</code></dfn></li> +</ul> + +<p>当 POST 请求是通过除 HTML 表单之外的方式发送时, 例如使用 {{domxref("XMLHttpRequest")}}, 那么请求主体可以是任何类型.按HTTP 1.1规范中描述,POST为了以统一的方法来涵盖以下功能:</p> + +<ul> + <li>注释已有的资源</li> + <li>在公告板,新闻组,邮件列表或类似的文章组中发布消息;</li> + <li>通过注册新增用户;</li> + <li>向数据处理程序提供一批数据,例如提交一个表单;</li> + <li>通过追加操作,扩展数据库数据.</li> +</ul> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">请求是否有主体</th> + <td>是</td> + </tr> + <tr> + <th scope="row">成功的响应是否有主体</th> + <td>是</td> + </tr> + <tr> + <th scope="row">{{Glossary("安全")}}</th> + <td>否</td> + </tr> + <tr> + <th scope="row">{{Glossary("幂等")}}</th> + <td>否</td> + </tr> + <tr> + <th scope="row">{{Glossary("可缓存")}}</th> + <td>Only if freshness information is included</td> + </tr> + <tr> + <th scope="row">HTML 表单是否支持</th> + <td>是</td> + </tr> + </tbody> +</table> + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox">POST /index.html +</pre> + +<h2 id="示例">示例</h2> + +<p>使用默认的 <code>application/x-www-form-urlencoded</code> 做为 content type 的简单表单:</p> + +<pre class="line-numbers language-html">POST / HTTP/1.1 +Host: foo.com +Content-Type: application/x-www-form-urlencoded +Content-Length: 13 + +say=Hi&to=Mom</pre> + +<p>使用 <code>multipart/form-data</code> 作为 content type 的表单:</p> + +<pre>POST /test.html HTTP/1.1 +Host: example.org +Content-Type: multipart/form-data;boundary="boundary" + +--boundary +Content-Disposition: form-data; name="field1" + +value1 +--boundary +Content-Disposition: form-data; name="field2"; filename="example.txt" + +value2</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">规范</th> + <th scope="col">标题</th> + </tr> + <tr> + <td>{{RFC("7231", "POST", "4.3.3")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.methods.POST")}}</p> + +<h2 id="另见">另见</h2> + +<ul> + <li>{{HTTPHeader("Content-Type")}}</li> + <li>{{HTTPHeader("Content-Disposition")}}</li> +</ul> diff --git a/files/zh-cn/web/http/methods/put/index.html b/files/zh-cn/web/http/methods/put/index.html new file mode 100644 index 0000000000..eeddfdd5c8 --- /dev/null +++ b/files/zh-cn/web/http/methods/put/index.html @@ -0,0 +1,101 @@ +--- +title: PUT +slug: Web/HTTP/Methods/PUT +tags: + - HTTP + - HTTP method + - Request method + - put +translation_of: Web/HTTP/Methods/PUT +--- +<div>{{HTTPSidebar}}</div> + +<p><strong>HTTP PUT 请求方法</strong>使用请求中的负载创建或者替换目标资源。</p> + +<p><code>PUT</code> 与 {{HTTPMethod("POST")}} 方法的区别在于,PUT方法是幂等的:调用一次与连续调用多次是等价的(即没有副作用),而连续调用多次POST方法可能会有副作用,比如将一个订单重复提交多次。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">Request has body</th> + <td>Yes</td> + </tr> + <tr> + <th scope="row">Successful response has body</th> + <td>No</td> + </tr> + <tr> + <th scope="row">{{Glossary("Safe")}}</th> + <td>No</td> + </tr> + <tr> + <th scope="row">{{Glossary("Idempotent")}}</th> + <td>Yes</td> + </tr> + <tr> + <th scope="row">{{Glossary("Cacheable")}}</th> + <td>No</td> + </tr> + <tr> + <th scope="row">Allowed in <a href="/en-US/docs/Web/Guide/HTML/Forms">HTML forms</a></th> + <td>No</td> + </tr> + </tbody> +</table> + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox">PUT /new.html HTTP/1.1 +</pre> + +<h2 id="示例">示例</h2> + +<h3 id="请求">请求</h3> + +<pre>PUT /new.html HTTP/1.1 +Host: example.com +Content-type: text/html +Content-length: 16 + +<p>New File</p></pre> + +<h3 id="应答">应答</h3> + +<p>如果目标资源不存在,并且PUT方法成功创建了一份,那么源头服务器必须返回{{HTTPStatus("201")}} (<code>Created</code>) 来通知客户端资源已创建。</p> + +<pre class="newpage">HTTP/1.1 201 Created +Content-Location: /new.html</pre> + +<p>如果目标资源已经存在,并且依照请求中封装的表现形式成功进行了更新,那么,源头服务器必须返回{{HTTPStatus("200")}} (<code>OK</code>) 或者{{HTTPStatus("204")}} (<code>No Content</code>) 来表示请求的成功完成。</p> + +<pre>HTTP/1.1 204 No Content +Content-Location: /existing.html +</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Specification</th> + <th scope="col">Title</th> + </tr> + <tr> + <td>{{RFC("7231", "PUT", "4.3.4")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("http.methods.PUT")}}</p> + +<h2 id="参见">参见</h2> + +<ul> + <li>{{HTTPStatus("201")}}</li> + <li>{{HTTPStatus("204")}}</li> +</ul> diff --git a/files/zh-cn/web/http/methods/trace/index.html b/files/zh-cn/web/http/methods/trace/index.html new file mode 100644 index 0000000000..47f22c8da2 --- /dev/null +++ b/files/zh-cn/web/http/methods/trace/index.html @@ -0,0 +1,77 @@ +--- +title: TRACE +slug: Web/HTTP/Methods/TRACE +translation_of: Web/HTTP/Methods/TRACE +--- +<div>{{HTTPSidebar}}</div> + +<p><strong>HTTP <code>TRACE</code> 方法</strong> 实现沿通向目标资源的路径的消息环回(loop-back)测试 ,提供了一种实用的 debug 机制。</p> + +<p>请求的最终接收者应当原样反射(reflect)它接收到的消息,除了以下字段部分,作为一个{{httpheader("Content-Type")}} 为 <code>message/http</code> 的200(OK)响应的消息的主体(body)返回给客户端 。</p> + +<p>最终接收者是指初始(origin)服务器,或者第一个接收到 {{httpheader("Max-Forwards")}} 值为 0的请求的服务器。</p> + +<table class="properties"> + <tbody> + <tr> + <th scope="row">有主体(body)的请求(request)</th> + <td>否</td> + </tr> + <tr> + <th scope="row">包含主体(body)的成功的响应(response)</th> + <td>否</td> + </tr> + <tr> + <th scope="row">{{Glossary("Safe")}}</th> + <td>否</td> + </tr> + <tr> + <th scope="row">{{Glossary("Idempotent")}}</th> + <td>是</td> + </tr> + <tr> + <th scope="row">{{Glossary("Cacheable")}}</th> + <td>否</td> + </tr> + <tr> + <th scope="row">允许用于 HTML 表单(form)</th> + <td>否</td> + </tr> + </tbody> +</table> + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox">TRACE /index.html +</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">规范</th> + <th scope="col">标题</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{RFC("7231", "TRACE", "4.3.8")}}</td> + <td>Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<p class="hidden">本页内的兼容性表格是从结构化的数据中生成的。如果您想要贡献兼容性数据,请浏览 <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> 并给我们提 pull request 。</p> + +<p>{{Compat("http.methods.TRACE")}}</p> + +<h2 id="参考">参考</h2> + +<ul> + <li><a href="/en-US/docs/Web/HTTP/Methods">HTTP methods</a></li> +</ul> + +<p> </p> |