コンテントネゴシエーションを行う必要があるものと、必要がないもの

http://hxxk.jp/2005/05/19/0052

記事データ

投稿者

望月真琴

投稿日時

2005-05-19T00:52+09:00

タグ
概要

mt.cgi に対するコンテントネゴシエーションに何故意味が無いのかという説明と、「できるからやった」という理由で、明確なメリットを説明しないままにその方法を発表することに疑問を投げかける記事です。

リプライ

リプライはまだありません。

記事本文

口うるさいと言われればそれまでなのですが

mt.cgiのリネーム。 ついでにスパム簡単なスパム対策も兼ねてmt-comment.cgiとmt-tb.cgiもリネーム。 lolipopはApacheサーバだからコンテントネゴシエーションを用いて表示されるファイル名の拡張子も無しに

mt.cgi や mt-comments.cgi や mt-tb.cgi をリネームすること自体には異論はありません。 私自身Movable Type における CSRF の可能性と各種対処法 - 防御法 - mt.cgi の名前を変更するMovable Type カスタマイズあれこれ - コメントスパム対策その 2 で述べていますし。

しかし、これらの CGI のファイル名の拡張子を無しにすることについては疑問を抱きました。 そこで、 2xUP:mt.cfgをかくさないと!もっかい!またはいろいろ具体的対策をやってみるに関連のある Movable Type における CSRF の可能性と各種対処法からトラックバックを送ってみたのですが、 ちなみにコンテントネゴシエーションはできるからやったわけで、これが問題の解決の歩みになるとは書いていませんのであしからず との追記がなされました。

「問題の解決には寄与しない」と言いたかったのも確かですが、それ以前に、「この問題を抜きにして考えてもコンテントネゴシエーションを行う意味が無い」と言いたかったのです。

コンテントネゴシエーションの必要性

コンテントネゴシエーションを行う必要のある状況を想定すると、

このような例が挙げられます。 要するに、サーバが提供する複数のリソースがある場合に、リクエストを行う UA から見た URI は同じであるように見せるケースです。

例えば、 2xUP が英語版と日本語版の両方のリソースを提供する weblog だったと仮定します。 それぞれのリソースの実態は http://2xup.org/log/yyyy/mm/dd-HHMM.html.enhttp://2xup.org/log/yyyy/mm/dd-HHMM.html.ja という風になります。 そこで Accept-Language フィールドを基にしたコンテントネゴシエーションを行うことにより、 http://2xup.org/log/yyyy/mm/dd-HHMM という URI へのリクエストに対して、 UA に応じて適切なリソースを提供することができます。

管理画面の CGI に対するコンテントネゴシエーションの必要性

Movable Type によって生成される HTML に対してコンテントネゴシエーションを行うことは、充分に有意義だと思います。 現在は .html という拡張子で使われている HTML も、いつまでもその拡張子が使われるかは分かりませんし、 PHP で運用している場合は、既にそう遠くない過去に .php3 から .php への変更を経験しました。 また、 weblog の内容によっては一つの言語に留まらない場合も充分に考えられます。 そういうことを見据え、あらかじめコンテントネゴシエーションを行っておくことは、未来に向けた有効な手段だと思います。

しかし、 Movable Type の管理画面の CGI についてはコンテントネゴシエーションが必要でしょうか。 複数言語のリソースを提供するわけでなく、また拡張子が変わるような事態になっても影響を受けるわけでもありません。 ( 拡張子が変わるような大きな変更がシステム側にあった場合、影響を受けないというより、コンテントネゴシエーションによる拡張子外し程度では対処できないと考えられます。 )

できるからやった という理由で、明確なメリットを説明しないままにその方法を発表することは、その記事を見て鵜呑みにしてしまう人が出るかもしれないという危険を孕んでしまうと思います。 ( この場合は鵜呑みにしてしまう人にも問題はありますが。 )

トラックバック送信先

リプライ

リプライはまだ送られていないか、管理者の承認待ち状態です。

この記事に対するご意見やご質問、ご感想などありましたらこのフォームに簡潔に記入して下さい。 簡潔に記入できない場合や、関連記事にてご意見をお寄せいただく場合は、ご自身の weblog にて記事を書かれた上で あてにトラックバックとして送信してください。

記入フォーム

補足情報

著作、講演、制作実績など