文字コードの問題
チャットなど「日本語を送信するようなシステム」を作る場合に文字コードに注意する必要があります。
XMLHTTPを使ってサーバにGETデータを送信しようとすると、Webページの文字コードがシフトJISだろうとEUCだろうとutf-8で送信されます。
そのため、以下のような単純なものを作っても文字化けしてしまいます。
- WebページをシフトJISで作成
- XMLHTTPでサーバへ文字を送信(エンコードして送信)
- サーバが受信した文字をクライアントへそのまま返信
- ブラウザは受け取ったデータをそのまま表示
対処方法としては、Webページの文字コードも、サーバ側で管理するデータの文字コードもutf-8で統一し、JavaScriptのescape関数とunescape関数を使ってエンコード・デコードするのが一般的です。
レスポンスの順序
「RFC2616 8.1.2.2」に記されているパイプラインの説明では、Webサーバは同一クライアントから複数のリクエストがあった場合、リクエストされた順番でレスポンスを返すはずです。
そのため、非同期通信ならではのAjaxでは、一つのクライアントがサーバに対して複数のリクエストを平行して行う場合、どのような順でレスポンスが来るのかを考慮しておきたいです。