動画の再生障害のお知らせ:動画の一部が再生できない事象が発生しています。Protocol)についてのおはなしです。Encodingだとかの盲腸的な裏話や、2015年5月に制定された新規格のHTTP/2についても言及します。eraHTTPは今日「インターネット」の代名詞のようになったプロトコルですが、もともとは1990年代に欧州の原子核物理研究所(CERN)で「必要に迫られて」「場当たり的」に開発されたものです。各国の研究者が集うCERNには各国・各組織にバラバラな機種・ソフトウエアが持ち込まれ、簡単な図入りドキュメントの共有すら困難でした。いちいち紙に印刷してコピーを配らなければならないようでは、何のためにコンピューターネットワークを使っているのやらわかりません。HTML)とセットで開発されたものです(※注1)。オンライン閲覧することでした。※注1:このときプロトタイプ開発に使われたワークステーションが、当時Apple社を離れていたスティーブ・ジョブス氏が創業したNeXTであったことは有名です。SGML準拠ではありません。後でSGML下位互換の汎用マークアップ言語XMLが開発され、XMLの仕様に基づいてHTMLを再定義したXHTMLが開発されました。出所:CERN[画像のクリックで拡大表示]かくして1991年に発表された「暫定版」のHTTP/0.9は、ものすごく単純なプロトコルでした。TCPで要求先(サーバー)の80番ポートを接続し、たった1行のリクエストを送ります。リクエストは「GET/index.html」のように、コマンド「GET」に必要なドキュメント(コンテント)のパス名が引数で渡されるだけです(これを「Simple-Request」と呼びます)。サーバーはこれに対し、コンテント本体をガバッと送信してコネクションを切ります。エラーメッセージも何もありません(これを「Simple-Response」と呼びます)。HTTP/0.9はエラーの判断もできず、送られてきたコンテントの日付やフォーマットの情報もなく(ファイルの中身や拡張子から察するしかない)、コンテントのサイズも分からない(コネクションが切断されてはじめてファイル終端が分かる)など問題もありました。何よりも「アホみたいに単純」という特徴があり、ソケットプログラミングに慣れた人なら30分くらいでHTTP/0.9のサーバーを書けるでしょう。「雑多なアーキテクチャー間でのファイル交換」というCERNの問題解決に特化した設計であり、この単純さゆえにHTTPはあっという間に実装が広まり「似たような」プロトコルを次々と駆逐してゆくことになります(※注2)。※注2:HTTPに駆逐された犠牲者の一つが、分散連携ドキュメント管理の先駆者だったGopherプロトコルでした。GopherとHTTPの明暗を分けた要因には様々なものがありますが、Gopher開発元のミネソタ大学が1993~2000年にかけてライセンス有償化をほのめかしていたという事情もあります。Web)として本格的に成功したのは、1996年に発表されたHTTP/1.0(RFC1945)からでした。リクエスト・レスポンスともに文法が拡張され、エラー情報やドキュメントの付随情報が交換できるようになました。今では常識のような「存在しないコンテントにアクセスしたとき返されるエラーは404」などのエラーコードは、HTTP/1.0になってから定義されたものです。「アホみたいに単純」だったHTTP/0.9に対してHTTP/1.0はだいぶ複雑になり、仕様書RFC1945は138Kバイト/3068行になりました。HTTP/0.9と大きく変わっていません。HTTP/1.0では「GET」の他に「HEAD」と「POST」のコマンドが拡張されました(※注3)。「HEAD」はGETとほとんど同じで、しかしコンテントに関わるヘッダー情報(フォーマット、サイズ、最終更新日付など)だけを返し、コンテント本体の返送を伴わないというコマンドです。低速のダイヤルアップ回線が主流だった時代、ブラウザーが更新日付を比較して更新があったファイルのみをダウンロードするような目的で作られたようですが、結局あまり活用されることはなく、現在ではほとんど使われていないと思います。※注3:他にも「PUT」「DELETE」「LINK」「UNLINK」がオプションコマンドとして定義されていますが、実際にはほとんど使われていないので割愛します。「クライアント(ブラウザー)からサーバーにデータを送る」ことを可能にしたものです(※注4)。ようなCGI機能を使った投稿型コンテンツが備わってゆくことになります。略で、プロトコル名ではなくHTTPサーバーと拡張プログラムの通信方式(の中の一つ)を指すものですが、現在では「動的コンテンツを提供するHTTPサーバー」程度の意味で使われることも多いです。※注4:ただしPOSTもGETもリクエスト~リプライの基本動作はほとんど同じで、異なるのはPOSTの場合リクエストヘッダーの後に任意長のコンテントが追加される点だけです。URL引数を用いてある程度(1Kバイト以内くらい)のデータを送ることはできます。SX-580電気スタンドの記事でも解説しました。プレイヤーなど各サービスの全貌、業界別の参入機会・可能性などを解説。Specialエレキあらゆるプロセスで顧客ニーズに対応セキュリティも万全な新IoT向けマイコン毎月更新。世界で戦える工場マネージャー養成講座(全2回セット)国内外を問わず工場のマネジメントを担う管理者に求められるスキルを体系的に学べる講座です。工場長や...世界で広がる自動車電源48V化の最新動向とポイントクルマの電動化が加速する中、実用化が進む自動車電源の48V化について、元トヨタ自動車で世界初の4...今後10年で倍増へ、半導体100兆円市場を制するのは誰か世界の半導体市場は、今後10年で100兆円規模に倍増する方向性が見えてきた。活用を考えているエンジニアを対象に、必要な基礎知識と深層学習の最新技術動向を解説します...工場のものづくり力を世界レベルに強化する世界で戦える工場マネージャー養成講座の第2回。産業用ロボット本体メーカーの角度から、中国ロボット市場の最新発展状況を徹底的に調査。自動車から電機、産業機械まで製造業が「世界No.1製品」をつくるために必要な開発設計プロセスの全...次世代電池2020EVから空飛ぶクルマ、IoT/センサーネットに広がる次世代電池技術を徹底解説デジタルヘルス未来戦略どの技術、どの市場を狙うのか、そして、どこと組むべきか。「デジタルヘルス」に挑むなら、今。事業戦...突き抜けるデザインマネジメント「デザインなんかで経営が変わるわけない」と思っている人にこそ読んでほしい本。