<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="213" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[213]</anchor-end> <dfn><code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">205</anchor></code></dfn> は、送信元の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォームの再設定</anchor>を行うことを指示する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">状態符号</anchor>でした。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="214" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[214]</anchor-end> かつては一部の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>が実装していましたが、
広く実装・利用されるに至らず、事実上の廃止状態にあります。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="207" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[207]</anchor-end> <strong><cite xml:lang="en">RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content</cite> (<time>2014-08-07 05:54:02 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc7231#section-6.3.6">https://tools.ietf.org/html/rfc7231#section-6.3.6</anchor-external></strong></li></ul></refs></section><section><h1>意味</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="209" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[209]</anchor-end> <code class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">205</anchor></code> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鯖</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>の処理を満足し、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>が本<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>を送信させることとなった「文書表示」
を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">起源鯖</anchor>から受信した元の状態に戻すべきであることを示します <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="207" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;207</anchor-internal></src>。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="210" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[210]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フォーム</anchor>などでデータを入力し、それを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>として送信し、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答</anchor>を受信したら元の状態に戻して次のデータを入力する、
といった利用方法を想定しています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="207" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;207</anchor-internal></src>。</p></example></section><section><h1>構文</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="211" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[211]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鯖</anchor>は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">payload</anchor> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">生成</anchor>しては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
<code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-Length:</anchor> 0</code> とするか、
<code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Transfer-Encoding:</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">chunked</anchor></code> によって長さを0とするか、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>の直後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>の直後で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">接続</anchor>を閉じるかのいずれかとしなければ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">なりません</strong></anchor>。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="207" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;207</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="212" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[212]</anchor-end> 似たような形の <code xmlns="http://www.w3.org/1999/xhtml" class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">204</anchor></code> の場合は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>の直後の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>が終わることになっていますが、
<code xmlns="http://www.w3.org/1999/xhtml" class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">205</anchor></code> の場合は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">改行</anchor>で終わらず、その後に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">payload body</anchor>
が続くことになっています。</comment-p></section><section><h1>歴史</h1><figure class="quote"><figcaption><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="208" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[208]</anchor-end> RFC 2068・2616 (HTTP/1.1) +10.2.6 205 Reset Content</p></figcaption><blockquote><p>The server has fulfilled the request and the user agent SHOULD reset
the document view which caused the request to be sent. This response
is primarily intended to allow input for actions to take place via
user input, followed by a clearing of the form in which the input is
given so that the user can easily initiate another input action. The
response MUST NOT include an entity.</p></blockquote><p>サーバーは要求を満たし、利用鎖へージェントはその要求の送信を引き起こした文書表示を<ruby>再設定<rt>リセット</rt></ruby>する<strong>べきです</strong>。
この応答は、主として、後で入力が与えられた入力欄の消去によって利用者が用意に次の入力動作を初期化できるような種の、利用者の入力によって起こる動作の入力を可能とすることを意図しています。
応答は実体を含んでいては<strong>なりません</strong>。</p></figure><section><h1>廃止</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end>
<cite>Bug 198309 - 205 response should reset the content.</cite> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=198309">https://bugzilla.mozilla.org/show_bug.cgi?id=198309</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="206" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[206]</anchor-end> <cite xml:lang="en">Web Applications 1.0 r2844 Give up on 205. Define how session history updates work without breaking scripts.</cite>
( (<time>2009-02-19 20:30:00 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://html5.org/tools/web-apps-tracker?from=2843&amp;to=2844">http://html5.org/tools/web-apps-tracker?from=2843&amp;to=2844</anchor-external></li></ul></refs></section></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> あんまり良い使用例は思い浮かびませんが、
例えば Web chat で、2つのフレームがあったとします。
フレーム1は入力 (発言) 欄、
フレーム2は会話内容が表示されるものであるとします。
そして、フレーム2は一定時間おきに再読み込みされます。</p><p>で、フレーム1で入力後、送信すると、 <code class="HTTP">205</code>
を返せば、フレーム1の表示はそのままですが、
フレーム1で今入力してた発言は消去され、
次の発言の準備ができます。フレーム2はフレーム1には影響されず、
相変わらず一定時間おきに更新されます。
フレーム1送信直後の表示ではフレーム1で送信した発言が追加されていることでしょう。</p><p><weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">現存の Web chat の実装のほとんどではフレーム1の初期化は <anchor>JavaScript</anchor> で実装していたりしますし、 <code xmlns="http://www.w3.org/1999/xhtml" class="HTTP"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">204</anchor></code> や <code xmlns="http://www.w3.org/1999/xhtml" class="HTTP">205</code> を知らないので発言時に target=フレーム2 にしてフレーム2を最新版に更新するわけですが、そういうのをなくして処理を単純化できます。</weak>
<weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web chat いくない! という話は勘弁して。</weak></p></section></body></html>