2004年03月15日
川俣晶の縁側ソフトウェアりすと亭開発日誌total 3889 count

バージョン4.05.0緊急リリース・長文をWebブラウザから書き込む時に種類不定のエラーになる場合があることについて

Written By: 川俣 晶連絡先

 障害情報・長文をWebブラウザから書き込む時に種類不定のエラーになる場合があるにて報告した障害の内容の詳細と対応について説明します。

 この問題に対処したバージョン4.05.0を緊急リリースしました(ダウンロードページ)。りすと亭サーバ管理者は、このバージョンにバージョンアップすることを推奨します。

問題の概要 §

 Webブラウザから長文を書き込もうとしたとき、書き込む内容の確認ページに進んだ時点で何らかのエラーメッセージが表示されます。(他のページでも、ボタンを押して大量のデータを送信した時点で発生する可能性があり得ます)

 表示されるエラーメッセージの一例としては、以下のようなものがあります。

エラーメッセージの例1: §

インターネットサイト……を開けません。

サーバへの接続はリセットされま。

エラーメッセージの例2: §

サーバーが見つからないか、または DNS エラーです。

ページを表示できません

再現手順 §

 この手順で再現する場合としない場合があります。主にタイミングに関連するので、同じ条件なら常に発生する訳ではありません。

 まず、りすと亭へWebブラウザでアクセスし、書き込み権限を持つリスト板のページを表示させます。新規スレッド作成のリンクをクリックし、認証が要求された場合は認証します。本文に長めのテキストを入力します。(テストではシフトJIS表記で5457バイトのテキストデータを使用)

 「メッセージ確認へ進む」ボタンをクリックします。

 確認ページが表示されず、何らかのエラーメッセージが表示されます。

回避方法 §

 りすと亭4.05.0以降のバージョンにバージョンアップして下さい。

 参考情報: Microsoft Internet Explorer 6.0については、Extra CRLF Character Is Added to a POST Request That Is Sent to an HTTP 1.1 Serverに記述された対象方法によって解決できる場合もあるようです。

原因と対策 §

 原因は、RFC 2068に以下のように書かれている問題に対する対策コードが不十分であったためと思われます。

Note: certain buggy HTTP/1.0 client implementations generate an

extra CRLF's after a POST request. To restate what is explicitly

forbidden by the BNF, an HTTP/1.1 client must not preface or follow

a request with an extra CRLF.

 この問題は、HTTPのPOSTリクエストで、本来不必要である改行(CRLF)が送信されてしまうクライアントが存在することを示しています。

 これに対応するために、りすと亭では、本来のデータのあとで受信する不必要なデータを読み飛ばす仕組みを持っていました。しかし、この仕組みが動作した後で不必要なデータが届いた場合、それらは読み込まれることなく通信が閉じられることになり、そこでクライアントは致命的な通信エラーが発生したと判断し、エラーメッセージを表示します。

 このような問題に対処するために、2つの修正を行いました。

  • 不必要なデータを読み飛ばす仕組みを発動するタイミングを、必要なデータの受信直後から通信を閉じる直前に移動させる (POSTリクエスト時のみの動作に変更)
  • POSTリクエストの場合のみ、できるだけ確実に不必要なデータを受け取る時間を確保するために、0.5秒の待ち時間を付け加る

 これらの修正により、たいていのケースではこの問題を解決できると思われます。しかし、閉じる直前の僅かな時間に不必要なデータが届くような状況が発生した場合は、同様のエラーが発生する可能性があり得ます。このような状況が発生する可能性は極めて低いものと考えます。

Facebook

キーワード【 川俣晶の縁側ソフトウェアりすと亭開発日誌
【りすと亭開発日誌】の次のコンテンツ
2004年
04月
30日
Content-type: text/html;charset=JIS……の謎
3days 0 count
total 3695 count
【りすと亭開発日誌】の前のコンテンツ
2004年
03月
11日
障害情報・長文をWebブラウザから書き込む時に種類不定のエラーになる場合がある
3days 0 count
total 3127 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20040315122910
サイトの表紙【りすと亭開発日誌】の表紙【りすと亭開発日誌】のコンテンツ全リスト 【りすと亭開発日誌】の入手全リスト 【りすと亭開発日誌】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.