SSI
HTMLファイルにプログラムを埋め込む技術だよ
最近では、あんまり使われないよ
「Server Side Includes」の略だよ
簡単に書くよ
SSI(読:エスエスアイ)とは
ホームページのファイル(HTMLファイル)にプログラムを埋め込む技術。
もう少し小難しく書くと
HTMLファイルに特定の書式で処理を記述することで、サーバ側でその処理を実施してからクライアント側に応答を返す技術のこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「HTMLファイル」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
HTMLファイルは、ざっくり説明すると「ホームページのファイル」です。
あなたがホームページを見ようとすると、まず、ホームページを見るときに使うソフト(Webブラウザ)からホームページのファイルが置いてあるコンピュータ(Webサーバ)に対して「このページをおくれ」と お願いが出されます。
そのお願いに対して、WebサーバさんからWebブラウザさんに「ほれ、そのページだよ」と お返事がきます。
お返事を受け取ったWebブラウザさんは、受け取った内容(ホームページのファイル)を画面上に表示してくれます。
この流れにおいて受け渡しされるファイルがHTMLファイルです。
実際にはHTMLファイル以外のファイル(画像ファイルとか)も受け渡しされますけどね。
メインとなるファイル、ホームページの中身が書いてあるファイルがHTMLファイルです。
以上を踏まえて
HTMLファイルにプログラムを埋め込む技術(のひとつ)
が「SSI」です。
「Server Side Includes(サーバ・サイド・インクルーズ)」の略で「SSI」ね。
気が向いたら、覚えてあげてください。
※「Server Side Includes」を何となく日本語にすると「給仕人側で含める」となります。[詳細]
本来、HTMLファイルの中身は、ただ目印を付けただけの文章です。
プログラムとかは一切関係ありません。
普通のホームページは、Webサーバに置いてあるHTMLファイルを見る人のコンピュータに送り、見る人のコンピュータの中にあるWebブラウザさんが見た目を整えて画面に表示してくれるだけです。
しかし時代の進歩と共に「ただ書いてある内容を表示するだけじゃなくて、いろいろやりたいよね」という声が大きくなりました。
そこで生まれた……のかどうかは知りませんが、HTMLファイルでちょっとしたプログラムっぽいことをやるために出てきた技術がSSIです。
SSIは、HTMLファイルの中にプログラムっぽい処理が書けます。
Webサーバさんは、その処理を実行してから、見る人のコンピュータにHTMLファイルを送ってくれます。
実際のSSIは例えば以下のように書きます。
<html>
<head></head>
<body>
「hoge.html」は<!--#flastmod file="hoge.html" -->に更新しました。
</body>
</html>
「<!--#flastmod file="hoge.html" -->」の部分がSSIです。
この例では「hoge.html」ファイルの最終更新日時を表示してくれます。
「JavaScriptみたいなもの?」と思う人がいるかもしれませんが、似て非なるものです。
JavaScriptは見る人のコンピュータ上であれこれ動きます。
それに対し、SSIはサーバ上で動きます。
JavaScriptは
J-1.サーバから見る人にファイルが送られる
J-2.Webブラウザさんが中身を解析してJavaScriptを動かす
の流れです。
SSIは
S-1.サーバが中身を解析してSSIを動かす
S-2.Webサーバから見る人にファイルが送られる
の流れになります。
SSIは、どちらかと言えばPHPさんとかPerlさんのお仲間ですね。
SSIを使うには、サーバ側で設定しなくてはいけません。
また、SSIを埋め込むことによって、ページの表示が遅くなったりします。
余計なお仕事が増えますからね。
さらに、悪い人によってSSIのコードを埋め込まれて変なことをされてしまうリスクもあります。
※変なことの詳細は、用語「クロスサイトスクリプティング」の説明を ご覧ください。
さらに、わざわざSSIを使わなくてもPHPとかで似たようなことができてしまいます。
そのため、現在ではあまり使われていない技術だと思います。
一言でまとめるよ
まぁ「SSI」って単語が出てきたら「HTMLファイル
(ホームページのファイル)にプログラムを埋め込む技術なんだな~」と お考えください。
おまけ
■訳してみるよ
「SSI」は「Server Side Includes(サーバ・サイド・インクルーズ)」の略です。
「server(サーバ)」の意味は「仕える人」とか「給仕人」とかです。
「side(サイド)」の意味は「側(ガワ)」とか「横」とか「方」とかです。
「includes(インクルーズ)」は「include(インクルード)」の複数形です。
「include(インクルード)」の意味は「含む」とか「含める」とか「組み込む」とかです。
何となく くっつけると
給仕人側で含める
となります。






