もちろん、画像内のデータが正しく、かつ、ブラウザがサポートする形式であれば拡張子があろがなかろうが表示できるでしょうし、GDで動的に書き出す際などはHTTPヘッダにMIMEタイプを指定して書き出したりしますよね?
現状の技術上?は問題ないと思いますけど、これってHTML上正しいことなの?というのが疑問です。
教えてください。よろしくお願いします。
全く問題ありません。
HTML4の仕様書(邦訳:http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/struct/obj...)には、src属性の属性値は”RFC2396で定められたURI”というように規定されており、そのRFC2396(邦訳:http://www.y-adagio.com/public/standards/tr_uri_2396/rfc2396...)では、拡張子の有無については規定されていないので、HTML上でももちろん問題ありません。
<IMG src="xxxxx.gif">
の記述がHTMLにある場合
WEBサーバーは、".gif"の拡張子のファイル
をブラウザーに送信する場合HTTPプロトコルで
データを送信します。
===================================
HTTP/1.0 200 Okay
Content-Type: image/gif
Content-Length: xxxx
.... GIFの中身
===================================
サーバー側で、HTTPの
GET xxxxx.gif
要求されたときの処理を実行しているだけなので
GET xxxx.yyy
GET ./xxxx/xxxx.cgi
のように.yyyや .cgi に関する処理がサーバ側
で処理できれば特に問題はありません。
ブラウザは、"Content-Type"を見て表示している
だけなので。
これもまた、明確な答えでありがたいです。
試してみました。
画像ファイルを"image"(拡張子なし)としてアクセスすると
IEでは表示されますが、ヘッダーはContent-Type: text/plainで返されます。
ブラウザ側がファイル内のヘッダ情報などから判断して画像として表示してるんでしょうね。
最終的には、前段RFCより拡張子ありなしなどは関係ない。
しかし、拡張子で返す情報をサーバ側が選択することがある。
なので、サーバ側で設定された拡張子を用いるのがよい。
CGIやPHPで書き出すときはちゃんとHTTPヘッダを指定してあげる。
書くとあたりまえですね(笑)
なんか、変なほうに頭がまわってたみたいです。
お二方ともありがとうございました。
あぁ、すっきりしました。ありがとうございます!