Webページの仕組み

Webページはサーバーから端末にデータが転送されることで表示される。

転送に用いるプロトコルは http プロトコルである。

webサーバには telnet コマンドで接続することも可能だなので試してみよう。

まずwindows10でtelnetを起動しよう。
windows10ではそのままではtelnetが起動しない。

 

C:\Users\Itaru>telnet

'telnet' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。

 

となりそのままでは使えないことがわかる。

[コントロールパネル] → [プログラム] → [Windowsの機能の有効化または無効化]

を開いて、Telnetクライアントを有効化することによって使用できるようになる。コマンドプロンプトでtelnetと入力すると、いかのように表示される。

 

Microsoft Telnet クライアントへようこそ

エスケープ文字は 'CTRL+]' です

Microsoft Telnet>

 

次にvisualstudioから適当なwebページを起動する。このurlを仮に、

http://localhost:4797/

だったとする。urlがlocalhost, port=4797となる

コマンドプロンプトから telnetを起動し、上記のurlをアクセスする。

上記の場合は、

telnet localhost 4797

と入力しよう。

--> telnet接続できない場合

 

以下HTTP1.0の説明をするが、現在ほとんどのサイトはHTTP1.1以後のプロトコルしか受け付けないから、以下は読むだけとしておいて、その後のHTTP1.1の説明にしたがって操作しよう。

下記の1行を入力したあと、Enter を2回入力する。ただし画面には何も表示されないので、打ち間違えをしないように注意して入力する。

GET / HTTP/1.0

 

2個目のENTER キーを押すと以下のように表示される。

画面には一見デタラメの文字列が表示される。この文字列はXHTMLで書かれたwebページのソーステキストで、この文字列をブラウザが解釈するとwebページが表示される。

もしパソコンがインターネットに繋がっていれば、外部のwebページをtelnetでアクセスすることもできる。その場合、HTTP/1.1が使われている場合があるので、以下のようにしてアクセスする。

GET / HTTP/1.1
Host: localhost

 

このようにHTTPサーバは、GETコマンドを受け取るとwebページのファイルを転送する。WEBブラウザはGETコマンドを送信し、受け取ったファイルを画面に表示するという動作を繰り返している。

このとき転送されるデータのフォーマットは xhtml という規格に基づいている。ブラウザはxhtml規格に基づいて文字列を解釈して画面に表示する。

サーバー側でxhtmlを送信するプログラムをhttpサーバと呼ぶ。

httpサーバ、またはhttpサーバを含んだシステムとしては、

apache

Widows Server 2012, Azure

などがよく用いられる。

HTML5, HTTP 2.0

現在 XHTMLからHTML5への移行がほぼ完了しつつある。これに同期して多くのプロトコルが大きく改定されようとしている。

2013年現在使われているプロトコルは1999年に策定されたHTTP 1.1であるが、現在HTTPの15年ぶりの改定作業が進んでいる。この授業の受講者が活躍する時代にはHTTP 2.0が標準となっているはずだ。

動画配信技術の分野では HLS(HTTP Live Streaming) が強い勢力を誇っている。これはappleが開発したものだが、Microsoft、Googleとも協調して標準技術として利用していく動きになっている。これに合わせて HLS をベースとした、DASH、MMTといった規格化が進んでいる。

参考

HTTP規格 http://tools.ietf.org/html/rfc2616

HTTP規格和訳:

http://www.y-adagio.com/public/standards/tr_http11_2068/toc.htm

HTML5規格: http://www.w3.org/TR/html5/

XHTML規格: http://www.w3.org/TR/xhtml1/

apache: http://www.apache.jp/

Microsoft Azure: http://azure.microsoft.com/ja-jp/

Windows Server 2012:
https://www.microsoft.com/ja-jp/server-cloud/products/windows-server-2012-r2/

HLS: https://developer.apple.com/streaming/
MMT:

http://www.iso.org/iso/catalogue_detail.htm?csnumber=35424

DASH:

http://www.iso.org/iso/catalogue_detail.htm?csnumber=65274

telnet接続できない場合

もしかするとPCルームではtelnetが使えないかもしれないが、その場合はPCルームでの実験はあきらめる。自宅のPCからであれば可能である。

windows10ではtelnetコマンドはデフォルトでは利用できない。

コントロールパネル/ プログラムと機能/Winodwsの機能の有効化または無効化

を選び

telnetクライアント

を有効にすることで利用可能になる。

PCルームからはwww.t-kougei.ac.jp にアクセスできない。

その場合はかわりに、Visual StudioでWebアプリケーションを実行しておいて、その時に起動される開発サーバーのURLにアクセスする。

たとえば IE のアドレスバーに http://localhost:4797/ と表示されていたら、

telnet localhost 4797

でローカルサーバーに接続することができる。

ここで4797はASP.NET開発サーバのポート番号。