情報ネットワーク12
-WWW
--Webページを表示する過程
---Webブラウザに,ユーザによって要求するファイルの位置情報が入力される。
--- Webブラウザは,WebサーバのURLの名前解決をDNSサーバとの間で行う。
--- Webブラウザは,DNSサーバから取得したIPアドレスを用いて,Webサーバ宛にURLのファイルのリクエスト(要求)を送信する。
--- Webサーバは,Webブラウザからのリクエストを受け取り,要求されたURLのファイルをレスポンス(応答)としてWebブラウザに送り返す。
--- Webブラウザは,受け取ったファイルをコンピュータにキャッシュとして保存し,その後,画面に表示する。
-Webブラウザに,ユーザによって要求するファイルの位置情報が入力される。
--WWW(World Wide Web)
---文書の公開・閲覧・交流のためのシステム
--ハイパーテキスト(Hypertext)
---1つのWebページの中に,ハイパーリンクという別のWebページを参照するためのリンクを埋め込める
---あらゆるWebページとつながりをもつ
--インターネットを利用したハイパーリンクによる広域文書共有システム
---画像や動画,音声などさまざまなデータファイルをリンクで埋め込む
---プログラムもリンクさせる
--ハイパーリンク
---WebページとWebページを関連付ける
-HTML
--ハイパーテキストを記述する言語
--要素(element)
---文書内の各部分
---コンピュータに理解できるように,文書の構造を定義する
--HTMLタグ
---目印をつけるための記号
---文書の一部を「タグ」と呼ばれる文字列で囲う
--開始タグと終了タグ<html>~</html>
--ヘッダに表示される情報<head>~</head>
--Webページのタイトル<title>~</title>
--本文に表示される情報<body>~</body>
--文書がHTML5で作成されたものであることを宣言<!DOCTYPE html>
--ハイパーテキストを解釈して,人間が読みやすいように作り変えて表示する
-静的(スタティクス)なWebページ
--内容が固定
--あらかじめサーバに保存される
-動的(ダイナミック)なWebページ
--アクセスしたときの状況や操作に応じて,異なる内容が表示される
--検索サイト,時刻やアクセスカウンター,掲示板
--JavaScripをくみこむ
-クライアントサイド・スクリプト
--HTMLに組み込まれ,Webブラウザによって読み込まれる際に実行されるプログラム
-CGI(Common Gate Interface)
--Webブラウザからの要求に応じて,Webサーバ側でプログラムを起動させるための仕組み
--Webブラウザから要求があるたびに,異なるHTMLファイルを生成・送信する
--サーバサイド・スクリプト
---サーバで動作するプログラム
-URI(Universal Resource Identifier)
--さまざまな対象を識別するために指定するもの
--スキーム名
---http:
----HTTPという通信プロトコルを利用する
---ftp
----ファイル転送
---mailto
----電子メール
---telnet
----遠隔ログイン
---file
----自分のコンピュータのファイルを見る場合
--HTTPS
----SSL(Secure Socket Layer)やTLS(Transport Layer Security)による暗号化通信機能を追加したスキーム
-URL(Uniform Resource Locater)
-- 文書やメールやファイルの所在情報を指定するもの
---www
----サーバの名前
---ポート番号
----Webならば80番,電子メールならば25番
---パス名
----サーバ内のファイルの住所,所在情報
---ファイル名
----省略できる
---ホスト名www.ouj.ac.jp.
----「www」はホストであるサーバの名前
----「ouj」は組織名を
----「ac」は大学等教育組織向けのSLD(セカンドレベルドメイン)
----「jp」は日本に定義されているccTLD(カントリーコードトップレベルドメイン)
-www
--WebブラウザとWebサーバ間のサーバ・クライアントの要求・応答
--Webサーバは必要なコンテンツ(Webページ)をWebブラウザに送信する
--Webサーバアプリケーション
---ApacheやIIS(Internet Information Service)
-HTTP(Hyper Text Transfer Protocol)
--WebサーバとWebブラウザ間のやり取りの手順と,やり取りするメッセージの書式
---クライアントのWebブラウザから,Webサーバに対して,何らかの要求がリクエストとして送信
---応答が,WebサーバからレスポンスとしてWebブラウザに返信される
-HTTPの歴史
--1991年:HTTP/0.9
---HTMLのテキスト情報配信するを配信する
--1996年:HTTP/1.0
--1999年:HTTP/1.1
---最も普及
--2015年:HTTP/2
-HTTPメッセージ
--WebブラウザとWebサーバの間でやり取りするデータ形式
--Webサーバからの応答であるHTTPレスポンス
--ヘッダ部を使って,リクエストやレスポンスの内容を示す
--ASCIIでエンコードされたテキスト情報
-HTTPリクエストメッセージ
--WebブラウザがWebサーバに要求を行うために送信されるメッセージ
--メッセージの内容を示しているメッセージヘッダと,データを運ぶためのメッセージボディ
--ヘッダ1行目
---要求の内容を示すリクエストライン
--2行目
---ブラウザの種類や,対応できるデータの形式,データの圧縮方法
--リクエストライン
---スペースで区切って,要求する情報のURLおよびHTTPのバージョンが置かれ,改行コード
---メッセージヘッダの終わりには,1行分の空白行
-リクエストライン
--GET/http://www.ouj.ac.jp/index.html HTTP/1.1
---GET
----サーバに対する要求を表していて,「メソッド」
---www.ouj.ac.jp/index.html
----パス名
---HTTP/1.1
----HTTPのバージョン
-ホストヘッダフィールド
--GET /index.html HTTP/1.1
---リクエストライン
--HOST: www.ouj.ac.jp
---のホストヘッダフィールド
-メソッド
--GET
---サーバに対するデータ取得
--HEAD
---パス名で指定したファイルのメッセージヘッダのみを要求
--POST
---クライアントからサーバにデータを送信する
--PUT
---ファイルを転送
--DELETE
---URLで指定したファイルを,サーバ上から削除する
-フィールド
--ブラウザの種類や,対応できるデータの形式,データの圧縮方法
-メッセージボディ
--GETメソッドを使った,Webページのデータを要求する場合には,使用されない
--POSTメソッドを使った,掲示板への書き込みなどの場合の,書き込んだ内容が格納されてWebサーバへと送信される
-レスポンスメッセージ
--GETメソッドでは,クライアントは,Webサーバに対して,パス名で指定したリソースの取得を要求
--Webブラウザからリソースの取得要求があったWebサーバは,要求されたデータを返信
-レスポンスメッセージ
--メッセージの内容を示しているメッセージヘッダと,データを運ぶためのメッセージボディで構成
---1行目にWebブラウザからのリクエストがどのように処理されたかを示すステータスライン
---2行目以降のフィールドにWebサーバアプリケーションの種類や処理した日時,送信するデータの情報
-ステータスライン
--HTTP/1.1 200 OK
---HTTP/1.1:Webサーバが対応しているHTTPのバージョン
---200:どのように処理されたか/ステータスコード
---OK:ステータスコードの内容を補足するテキスト/リーズンフレーズ
---200/OK/リクエストが正常に処理された
---304/Not Modified/リクエストされたデータは更新されていない
---403/Forbidden/サーバがリクエストを拒否した
---404/Not Found/リクエストされたデータを見つけられなかった
---500/Internal Server Error/サーバ内部でエラーが発生
-Keep Alive(HTTP/1.1)
--一度TCPコネクションを確立させれば,データのやり取りが終わるまで維持させ,
終了後にコネクションを切断する
---レスポンスで取得したWebページに画像ファイルが指定されるとテキストと画像はそれぞれ個別にリクエストされる
-HTTPパイプライン(HTTP/1.1)
--HTTPレスポンスを待つことなく,複数のHTTPリクエストを送信することできる
---HTTPリクエストの順番どおりにHTTPレスポンスを返す
----1つのHTTPレスポンスの処理に時間がかかると,それ以降のHTTPレスポンスは,その処理が終わるまで待つ
-ストリーム(HTTP/2.0)
--仮想的な通信経路を複数生成し,それぞれのストリーム内で,HTTPリクエストとHTTPレスポンスのやり取りができる
-HTTP/2.0
--バイナリ形式
---変換処理にかかる時間を削減
--フレーム
---バイナリ形式のフォーマットを採用し,分割して送信
--ヘッダ圧縮
---HPACKと呼ばれる圧縮方式
---送信が必要なヘッダのみを差分として抽出し,送信
--サーバプッシュ
---クライアントからのリクエスト内容をもとに,サーバ側で必要ファイルを判別し,事前にクライアントに送信
-キャッシュとcookie
--ファイルをキャッシュに保管
--再度閲覧した場合はキャッシュを再生
-ステートレス
--リクエストとレスポンスの間のやりとりの状態(ステート)を管理するしくみがない
--以前に送ったリクエストや送られたレスポンスについて,記憶しない
--状態を保持
--ユーザのコンピュータに一時的にデータを書き込んで保存させる仕組み
---ドメイン名,Cookieの有効期限,IDやパスワード,サイトを訪れた日時,訪問回数
---一切暗号化がされない
--ユーザの識別
---認証システムやカスタマイズ
-プロキシサーバ
--内部ネットワークとインターネットのような外部ネットワークの境界線に置かれるサーバ
--HTTPの代理要求をするサーバ
---本来Webサーバに送るHTTPリクエストやデータプロキシサーバにを送る
---プロキシサーバがブラウザの代わりに,外部のWebサーバに対して,HTTPリクエストやデータを送る
--外部のWebサーバから,ネットワーク内の各コンピュータの存在を分からないようにする
--Webサーバからの好ましくないデータを遮断できる
--好ましくないWebサイトにアクセスすることも遮断
-透過型プロキシサーバ
--コンピュータはプロキシサーバの存在を知らず,ルータが強制的にプロキシサーバに中継する
--設定不要
-非透過型プロキシサーバ
--コンピュータがプロキシサーバの存在を知っている