前回の DNS とメールで紹介の抜けていた点を補足。内容は前回の講義録に追記。
WWWとhttp
WWWとは、ティム・バーナーズ=リーによって作られたサービスであり、元々は研究データの論文やデータの共有のために作られた。この際のWebサーバのデータのやり取りのためのプロトコルがhttp(Hyper Text Transfer Protocol)であり、ポート番号80のTCPを用いたものであり、最近では通信を暗号化したhttps(ポート番号443)も多く使われる。
httpでは、文字データの中に画像や音声といった情報に加え、他のデータへのリンクを埋め込むことができる HTML(Hyper Text Markup Language) のデータがやりとりされる。このHTML形式のデータを表示するためのソフトは、ブラウザと呼ばれる。
URL
WWWのデータの場所を示すものが、URL(Uniformed Resource Locator)であるが、最近ではインターネットが複雑化しLocator という表現が難しいため、URI(Uniformed Resource Identifier)と呼ぶようになってきた。
URLは基本的に、スキーマ://コンピュータ名/サーバ内ファイル位置 といった文字で構成される。URL は、HTTP だけでなく、インターネットの情報の場所を記述するために使われており、httpやhttps以外にも使う。
http
httpのサーバ(Webサーバ)とブラウザでは、以下のような手順で処理が行われる。例えば http://www.ei.fukui-nct.ac.jp/~t-saitoh/index.html のページが表示されるまでを考えると、
- ブラウザのURL欄に、目的サイトのURLを入力。
- 基本的には、スキーマ欄に記載されたプロトコル(http)名から、ポート番号と通信方法(http)を決める。
- コンピュータ名部分(www.ei.fukui-nct.ac.jp)を DNS に問合せして、得られたIPアドレスのコンピュータに接続。
- httpの最も簡単な GET メソッドでは、Webサーバに、サーバ内のファイル位置(/~t-saitoh/index.html)を伝えると、Webサーバは指定された場所のファイルを返送する。
- HTML形式のデータが指定された場合、ブラウザはその HTML をどの様に表示するか判断しながら表示する。
このような予め保存されているWebページを返送する場合は静的ページと呼ばれる。サーバのデータベースなどを参照しながらページ内容を返送する場合は、動的ページと呼ばれ、CGI(Common Gateway Interface) という手法が使われたり、動的なページを表示するためのプログラム言語(例えばPHP)が使われる。
サーチエンジン
インターネットでは、大量のWebページが出現してきたため、自分の目的に応じてWebページを探す機能が必要となってきた。このような目的のWebページを検索してくれるシステムは、サーチエンジンと呼ばれる。
ディレクトリ型
最初に現れた検索システムは、ページ作者が自分のページのURLと内容となるキーワードを登録しておき、内容のカテゴリー別に、ページの紹介文章が表示されるディレクトリ型であった。(初期のYahoo)
しかし、登録するキーワード以外の文字で探そうとすると、情報を見つけることができない。
ロボット型
これらの問題を解決すべく登場したのが、Google のようなロボット型サーチエンジンである。
ロボット型の検索システムでは、クローラーとかロボットとか呼ばれるプログラムを使い、Webページの内容をダウンロードし、そこに記載された文字を使ってURLのデータベースを作成する。クローラーは、リンクが貼られていると、そのページでも同様の処理を行い、大量の情報を次々と取得していく。
直接サーバと接続
サーバの動作を知るために、メールサーバやWebサーバと直接通信をしてみよう。
この実験をするには、telnet コマンドを使う。telnet コマンドは、タイプされた文字をサーバに送り、サーバから返答された文字を画面に表示するだけの単純なコマンドである。
使い方: telnet 相手サーバ ポート番号 (例1) メールサーバに接続 $ nslookup -query=MX fukui-nct.ac.jp # 自組織メールサーバを探す : Non-authoritative answer: fukui-nct.ac.jp mail exchanger = 10 smtp.ip.fukui-nct.ac.jp. $ telnet smtp.ip.fukui-nct.ac.jp 25 # メールサーバに接続 Trying 10.10.21.55... Connected to smtp.ip.fukui-nct.ac.jp. Escape character is '^]'. 220 ews.ip.fukui-nct.ac.jp EGVA/SMTP Ready. HELO ei.fukui-nct.ac.jp # 送信開始 250 Requested mail action okay, completed. MAIL FROM: foo@ei.fukui-nct.ac.jp # 送信元の設定 250 Requested mail action okay, completed. RCPT TO: bar@example.jp # 送信先の設定 250 Requested mail action okay, completed. DATA # メールデータ 354 Enter mail, end with "." on a line by itself. From: foo@ei.fukui-nct.ac.jp Subject: test test . 250 Requested mail action okay, completed. QUIT # 送信中止 (例2) Webサーバに接続 # http://www.ei.fukui-nct.ac.jp/~t-saitoh/ を参照 $ telnet www.ei.fukui-nct.ac.jp 80 Trying 104.215.24.241... Connected to fnctei.ei.fukui-nct.ac.jp. Escape character is '^]'. GET /~t-saitoh/ http/1.1 # GET ファイル位置 プロトコル <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard"> :