第一部 Web概論 (第一章 Webとは何か? ) アウトプットメモ
Webはすべての基盤である
現在のコンピュータにとって、最も大切なソフトウェアはブラウザである。
私たちは、ブラウザを通じてインターネットの向こう側にあるWebサーバーとやりとりして、ショッピングサイトで買い物をしたり、地図や乗り換え情報を得たりしている
Webは現在の生活に根付いているため、すべての基盤であるといえる
※10年前であれば、最も大切なソフトウェアはワープロ(ワードプロセッサー)や基幹業務のソフトウェア
Webは様々な用途で使われている
※同じWebの技術でも、その用途は多岐にわたる
Webサイト
最も身近な例
ex) Amazon、Google、Wikipedia、SNS...ect.
Webサイトのシステム構成は、PCベースのUNIX 1台のケースから、何千・何万ものサーバーを繋ぎわせたケースまで、多くのバリエーションがある
↑
Webサイトの裏側までクライアントが意識しないで済むことが、Webの大きな特徴といえる
Webは多様な種類のブラウザに加え、多くのソフトウェアやハードウェアから利用されている
ex) 携帯電話、ゲーム機、そのほかデバイス...ect.
UI
意外に思うかもしれないが、リモコンやハードウェアの限定されたボタンで設定するよりもPCのキーボードで操作したほうが効率的のため
別例) htmlでのヘルプ記述
windowsにはhtmlヘルプと呼ばれる機構があり、htmlベースでソフトウェアやハードウェアのヘルプが作成可能
写真管理ソフトが配布用に画像にリンクしたHTMLを生成するのものWeb技術をインターフェース面で応用した例
このような応用がされるのは、HTMLが記述・編集しやすいことと、多様な環境でブラウザが利用できるから
Web API
- UIとしてのWeb → 人間向けのインターフェース
- APIとしてのWeb(Web API) → プログラム向けのインターフェース
データフォーマットには、XMLやJSONなどのプログラムが解釈・処理しやすいものが用いられる
Webは3つの技術に支えられ、2つの側面を持つ
HTTP、URI、HTML
Webを支える最も基本な技術
- URI → ショッピングサイトの商品、学術論文、動作サイトに投稿されて動画でも、世界中の情報を示せる
- HTML → URIの情報を表現する文章フォーマット
- HTTP → URIの情報を取得したり、発注したりする
上記はシンプルな技術
このシンプルさでWebは様々な応用を可能としている
HTTP1.1が定義しているメソッドは8だけ
メソッド | 説明 |
---|---|
GET | 最も一般的に使用されるメソッド ブラウザはサーバに対してページの取得を要求 |
HEAD | ヘッダのみの情報を要求 サーバは GET メソッドと HEAD メソッドは必ずサポートしなければならない |
POST | CGI でよく使用されるメソッド method="POSTを指定したフォームに入力したデータをサーバに転送する際に使用 |
PUT | ファイルをサーバにアップロードする際に使用 |
DELETE | 指定したリソースを削除することをサーバに要求 |
CONNECT | プロキシサーバを経由して SSL 通信する際などに使用 |
OPTIONS | サーバがサポートしているメソッドやオプションを調べる際に使用 |
TRACE | HTTP要求がどのプロキシサーバを経由して送信されるかなど、HTTP の動作をトレースする際に使用 このメッセージを受け取った最後のサーバは、要求メッセージに含まれるエンティティ(通常はヘッダ+メッセージボディ)をそのまま返す |
URIは紙の広告に記載できるくらい短い文字列
https://www.example.com/
HTMLはXMLをベースとした汎用文章フォーマット
<?xml version='1.0' encoding='UTF-8'?>
<doc>
<p>Hello World!!</p>
</doc>
<html>
<head>
<title>HTML文書の例</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
URI、HTML、HTTPに支えられたWebは、情報システムとしてみるとハイパーメディアシステムと分散システムの二つの側面を持つ
ハイパーメディアシステム
テキスト、画像、音声、映像などの様々なメディアをハイパーリンクで結び付けて構成したシステム
ハイパーメディア以前のメディア
ex) 書籍、映画
- 線形的に先頭から読んだり、視聴したりする
ハイパーメディア
ex) YouTube
- 非線形的にユーザ自身がリンクを選択し、情報を取得する
ハイパーリンク(リンク) → 情報同士を結びつける機構
ユーザが情報から別の情報へと自由に参照できるようになる
分散システム
複数のコンピュータを組み合わせて処理を分散させる仕組み
一台のコンピュータで実行するよりも効率的に処理が可能
複数のコンピュータ上に存在するデータを一元的に扱ったり、一台のコンピュータでは扱え切れない膨大なデータを操作したりできる
Webは世界中に配置されたサーバに、世界中のブラウザがアクセスする分散システム
分散システムとしてのWebの特徴はシンプルな点
プロトコルがシンプルだからこそ、大規模なシステムが実現できている