aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/http/status/412/index.html
blob: 4bb9a606b6271a031fc29ef387df7df4199b0d33 (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
---
title: 412 Precondition Failed
slug: Web/HTTP/Status/412
tags:
  - HTTP
  - Reference
  - エラー
  - ステータスコード
  - リファレンス
translation_of: Web/HTTP/Status/412
---
<div>{{HTTPSidebar}}</div>

<p>HyperText Transfer Protocol (HTTP) <code><strong>412 Precondition Failed</strong></code> クライアントエラーレスポンスコードは、ターゲットリソースへのアクセスが拒否されたことを示します。これは、 {{HTTPHeader("If-Unmodified-Since")}} または {{HTTPHeader("If-None-Match")}} ヘッダーで定義された条件が満たされていない場合に、 {{HTTPMethod("GET")}} もしくは {{HTTPMethod("HEAD")}} 以外のメソッドの条件付きリクエストで発生します。その場合、リクエスト (通常はリソースのアップロードまたは変更) を行うことができず、このエラーレスポンスが返されます。</p>

<h2 id="Status" name="Status">ステータス</h2>

<pre class="syntaxbox">412 Precondition Failed</pre>

<h2 id="Examples" name="Examples"></h2>

<pre><code>ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
ETag: W/"0815"</code></pre>

<h3 id="Avoiding_mid-air_collisions" name="Avoiding_mid-air_collisions">空中衝突の防止</h3>

<p><code>ETag</code>{{HTTPHeader("If-Match")}} の各ヘッダーを活用することで、編集の空中衝突を検出することができます。</p>

<p>例えば、 MDN を編集しているとき、現在の Wiki の内容がハッシュ化され、レスポンスの <code>Etag</code> に入ります。</p>

<pre><code>ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"</code></pre>

<p>Wiki ページへの編集を保存する (データを投稿する) 際に、 {{HTTPMethod("POST")}} リクエストに {{HTTPHeader("If-Match")}} ヘッダーを含み、その中で新鮮さをチェックするための <code>ETag</code> の値を含みます。</p>

<pre><code>If-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"</code></pre>

<p>ハッシュが一致しない場合、その間で文書が編集されたことを意味するので、 {{HTTPStatus("412")}} <code>Precondition Failed</code> エラーを発生させます。</p>

<h2 id="Specifications" name="Specifications">仕様書</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">仕様書</th>
   <th scope="col">題名</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{RFC("7232", "412 Precondition Failed" , "4.2")}}</td>
   <td>Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2>

<p>以下に示す情報は、 MDN の GitHub から取得したものです。 (<a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>).</p>

<p>{{Compat("http.status.412")}}</p>

<h2 id="See_also" name="See_also">関連情報</h2>

<ul>
 <li>{{HTTPStatus("304")}}</li>
 <li>{{HTTPHeader("If-Unmodified-Since")}}</li>
 <li>{{HTTPHeader("If-None-Match")}}</li>
 <li>{{HTTPStatus("428")}}</li>
</ul>