HTTP の制御

作成日:2013-04-04
最終更新日:

オライリーの JavaScript 第6版 を図書館から借りて、いろいろ調べている。 18 章のHTTP の制御は知らないので、少し調べてみた。

概要

まずは XMLHttpRequest の扱い方を学ぶのが第一歩である。 ところが、同書の記述はわかりにくい。 高橋 登史朗「入門 Ajax」を参考に試してみることにした。

動的受信

XMLHttpRequest は、非同期で、サーバーに対する HTTP 要求を発行する関数である。非同期という意味は、 サーバーからの回答を待つことなくブラウザ側での作業ができる、という意味である。 つまり、サーバーからの回答を待ってブラウザ側の作業をするのが同期であり、 待つ必要がないのが非同期ということだ。

テキストデータ、XML データ、JSON データ

まずはテキスト系のデータを非同期で得る方法を調べる。 データを得るだけであればわざわざ XMLHttpRequest を使うまでもないのだが、 動的データを得るための練習である。 最初はテキストデータ、 すなわち Windows でいう .txt データを得る方法である。

下の「テキスト読み込み」ボタンをクリックすると、テストデータが表示される。

XML や JSON データについてはこれからの課題である。

バッドノウハウ

実際には、ブラウザ間の細かな差異を吸収するためのバッドノウハウがいる。 そのあたりは jQuery に期待していいのではないかと勝手に思い込んでいるが、 実はよくわからない。

バッドノウハウの大部分は Internet Explorer (IE) に起因するものであったが、その後 IE は 2022年6月15日 にサポートが終了した。 無理に IE で動かす必要なないだろう(2022-10-18)。

その後

HTTP の制御では、XMLHttpRequest を素のままで使うより、fetch() を使うのがよい(2022-10-18)。

同一起源ポリシー

XMLHttpRequest() や fetch() を使う際には、同一起源ポリシー(同一生成元ポリシー、同一オリジンポリシー)を考慮する必要がある。

まりんきょ学問所JavaScript 手習い > HTTP の制御


MARUYAMA Satosi