4つのファイル拡張子 .html、.htm、.shtml、.shtm の違い

4つのファイル拡張子 .html、.htm、.shtml、.shtm の違い
ウェブページを作り始めたばかりの友人の多くは、拡張子が非常に多いことに気づきます。実際、htm と html は同じであり、shtm と shtml も同じです。ウェブサイトの最適化のために、同じサフィックスを使用することをお勧めします。基本的に、訪問者にとって、html と htm は 2 つの異なるコンテンツになる可能性があります。

.htm と .html

まず、.htm ファイルと .html ファイルの違いを見てみましょう。答えは、同じだということです。

実際のところ、これは単なる個人的な好みの問題なので、同じ接尾辞を維持するだけです。従来、Windows では通常、サフィックス .htm が使用され、Linux (Unix) ではサフィックス .html が使用されます (Linux では、.htm ファイルを開くと、ソース コードが直接表示されます)。これは、昔、オペレーティングシステム (DOS) プラットフォームがウィンドウ 3.xx であり、システムのファイル命名規則が 8.3 であったためです。つまり、ファイル名は 8 文字まで、サフィックスは 3 文字までしか使用できず、当時は .html サフィックスを使用することは明らかに不可能でした。今では、これらの問題はもう存在しません。 (個人的には、.html の方がフォーマルだと感じます。.htm を使用すると DOS 時代への回帰になると考える人もいます。)

もう 1 つの問題はサーバー側にあります。サーバー上のフォルダーに index.html ファイルと index.htm ファイルの両方があり、URL でファイル名が省略されている場合 (http://www.domain.dom/dirname/ など)、明らかに 1 つのファイルが他のファイルより先に読み取られます (index.html が最初に解析されます)。実際、通常は 2 つのインデックス ファイルを同じフォルダーに保存しません。

.html と .shtml

次に、.html ファイルと .shtml ファイルの違いについて説明します。簡単に言うと、.shtml ファイルは ssi が追加された html ファイルです。それで、SSI とは何でしょうか?実際、私は以前、Apache で SSI 構成を有効にして HTML サポートを含めるという記事でこれに遭遇しました。

SSI は Server Side Include の略語です。埋め込まれたサーバー側インクルード コマンドを含む HTML テキスト。 SHTML ドキュメントは、ブラウザに送信される前に、サーバーによって完全に読み取られ、解析され、変更されます。 SSI は、HTML ファイル内のコメント行を通じて呼び出すことができるコマンドまたはポインターです。 SSI には強力な機能があります。 1 つの簡単な SSI コマンドだけで、Web サイト全体のコンテンツを更新したり、時間と日付を動的に表示したり、シェルや CGI スクリプトなどの複雑な機能を実行したりできます。 ウェブサイトのメンテナンスでよく発生する問題は、ウェブサイトの構造は固定されているものの、少しのコンテンツを更新するために多数のウェブページをやり直す必要があることです。 SSI は、この問題を解決するシンプルで効果的な方法を提供します。Web サイトの基本構造をいくつかのシンプルな HTML ファイル (テンプレート) にまとめます。テキストをサーバーにアップロードするだけで、プログラムがテンプレートに従って Web ページを自動的に生成し、大規模な Web サイトの管理が容易になります。

これを応用することで、ウェブサイトの一部の公開領域を独立したページにすることができ、その後、この技術を使用して、その領域のコンテンツを必要とする他のページにそれらを埋め込むことができます。

機構:

SSI メカニズムは、静的生成ではなく動的インクルードです。Apache などの Web サーバーがユーザーのリクエストを受信し、それを解析して SSI インクルード命令を見つけると、インクルードされたページを自動的に取り出し、リクエストされたページに埋め込み、ページ全体としてユーザーに送信します。ユーザーはサーバーが何をしたかはわかりませんが、完全なページを受け取ったことだけはわかります。

SSI の動作メカニズムから、ユーザーがページを要求するたびにインクルードアクションが発生するため、インクルードされたページの内容が変更された場合、リアルタイムで反映されることがわかります。このため、静的ページの動的な埋め込みを実現するのは非常に簡単です。これを使用して、Web サイト全体の公開領域を実装したり、大量の繰り返し領域のコンテンツを独立した静的ページに公開したりして、サイト全体のヘッダーとフッター、サイト全体の最新ニュースなど、必要な場所に SSI 指示でインクルードすることができます。

実際、SSI は .html ファイルでも有効にできます。Apache で対応する設定を行うだけです。SSI を有効にすると、.html ファイルと .shtml ファイルを同じように扱うことができます。

追加タイプ text/html .shtml .html
AddOutputFilter には .shtml .html が含まれます

具体的な設定方法については、HTMLがincludeをサポートできるようにApacheでSSI設定を有効にするを参照してください。

.shtm ファイルに関しては、ソース コードは window7 apache のブラウザーで直接開かれました。

<<:  シンプルな CSS テキストアニメーション効果

>>:  Dockerの匿名マウントと名前付きマウントの具体的な使用法

推薦する

MySQL インジェクションにおける outfile、dumpfile、load_file 関数の詳細な説明

SQL インジェクション脆弱性を悪用する後期段階では、MySQL のファイル シリーズ関数を使用して...

MySQL における単一テーブルと複数テーブル、およびビューと一時テーブルに対する Update と Select の違い

1. テーブルAのデータを使用してMySQLのテーブルBの内容を更新するたとえば、データ テーブル内...

JSに関する7つの面接の質問、あなたはいくつ正しく答えられますか

序文JavaScript では、これは関数呼び出しコンテキストです。この動作が非常に複雑であるからこ...

MySQL 5.6 ルートパスワード変更チュートリアル

1. MySQL 5.6をインストールした後、正常に有効化できないMySQL の圧縮バージョンは、解...

Linux は、Deepin がルートユーザーとして Google Chrome ブラウザを起動できない問題を解決します

Deepin がルートユーザーとして Google Chrome ブラウザを起動できない問題を解決す...

Div CSS 命名標準 CSS クラスの命名規則 (SEO 標準に準拠)

検索エンジン最適化 (SEO) では実行すべきタスクが多数ありますが、その中でもコードの最適化は重要...

Vue3の状態管理の使用方法の詳細な説明

目次背景提供/注入共有状態の抽出データを提供するデータの挿入まとめ反応的な共有状態の抽出共有状態の使...

CentOS 8.1 で LEMP (Linux+Nginx+MySQL+PHP) 環境を構築する (チュートリアルの詳細)

目次ステップ1: CentOS 8でパッケージを更新するステップ2: CentOS 8にNginx ...

Pure CSS と Flutter はそれぞれブリージング ライト効果を実現します (サンプル コード)

前回、非常に熱心なファンから、月を呼吸する光の効果にできるかどうか尋ねられました。月の大きさの写真が...

WindowsとLinux間でファイルを転送する方法

WindowsとLinux間のファイル転送(1)WinSCPを使用して、WindowsファイルをLi...

JSはUUIDとNanoIDというユニークなIDメソッドを生成します

目次1. NanoIDがUUIDに取って代わる理由2. jsを生成する方法3. ナノID方式序文:ユ...

mysql8.0.19 の基本データ型の詳細な説明

MySQL 基本データ型一般的な MySQL データ型の概要 ![1036857-201708011...

シンプルなスネークゲームを実現するネイティブjs

この記事では、スネークゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な内容...