![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
最近SNSサイトのmixi(ミクシィ)を利用し始めて気になったのですが、
URLを見ると各ページの拡張子が.plになっています。
これってperlですよね?
しかし、25万人もの会員を有するサイトにおいて、
サーバーサイドでの処理が可能なものなのでしょうか?
通常perl/CGIはサーバー側の負荷が高いのだと認識していたのですが、
こういう考え方自体が間違っているんでしょうか?
ちなみ私は、ActionScript、Lingo、それにPHPやMySQLなんかも使って
仕事をしているのですが、何せ見よう見真似でやらせてもらってるだけなので、
実際のところWebアプリなど初心者同然です。
小さな自社には技術者も他に居ないので、
技術に明るい方からのご回答がいただければ幸いです。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
まず、CGIとperlは全く別物だということを認識する必要があります。
WEBサーバーは、事実上ほとんどapacheなので、以下apacheと書いてしまいますね。
CGIというのは、apacheから、外部プログラムを起動して、そのプログラムの実行結果を、見ている人のブラウザにかえす仕組みです。
たまたま、perlが多く使われていただけで、実行する外部プログラムがperlである必要性はどこにもありません。誰もそんなことはしませんが、設定さえすれば、perlの代わりにXFree86を使って、
「ユーザーがページにアクセスするとサーバー側でXが立ち上がる」
サイトを作ることもできますし、perlの代わりにrebootを使えば、
「ユーザーがページにアクセスするとサーバーが再起動する」
サイトを作ることもできます。
ここまで極端ではありませんが、C言語で書かれたCGIプログラムというのも多く存在します。
PHPが早いというのは、apacheに組み込まれているからです。PHPは、mod_phpというapacheの組み込みモジュールとして実現しています。これは、早い話が、外部プログラムを立ち上げるのではなく、
「サーバーソフトであるapacheそのものが、PHPスクリプトを解釈するようにする」
ことです。Windowsでいえば、PHPスクリプトの解釈モジュールがDLLになっていると言えばわかりやすいでしょう。
で、CGIがperlに限らないのと同様、perlもCGIに限りません。現在では、perlについても、mod_perlというapacheの組み込みモジュールが存在して、PHPと同じ仕組みで、perlスクリプトを解釈できるようになっています。仕組みがPHPと同じなので、速度も負荷もPHPと大差ありません。
おそらく、ご指摘のサイトはこの方法を使っているのだと思います。
ご返事遅くなり申し訳ありませんでした。
わかりやすいご回答ありがとうございます。
「組み込みモジュール」と書いてくださっているのを見て、なるほど、と思いました。どうやらかなり初歩的な質問だったようで、お恥ずかしいかぎりです。
CGI=Perlではないということを知ってはいたのですが、入門書を斜め読みしていただけではきちんと理解できていなかったようです。mod_phpにしても、そう言えば設定ファイルにそんな修正を加えていたような気が・・・!と、ようやく頭の中がつながりました。
具体的なご説明、ありがとうございました。ご回答を足がかりに、精進していきたいと思います!
No.2
- 回答日時:
まさに、あなたの疑問を検証しているサイトです。
(perl vs PHP)そもそも、スクリプト言語perlは、c言語などコンパイラを用いて実行ファイルを作る物に比べ
絶対的に遅いです。PHPも同様に遅いです。
純粋に、データの圧縮やソートなどのロジックを書き比べると決定的な差がでます。
しかしながら、WEBサイトにおけるサーバ側のロジックの処理負荷というのは、
決して高い物ばかりではなく、高いとしても高度なロジックによってではなく、
データベース処理など他の要素によるものが多いかと思います。
(ここ「教えて!goo」なんて、DBに引っ張られているんだろうと想像します)
故に、perl(およびPHP)などのスクリプト言語で書いたら、遅くて話にならないという
ことにはなりません。
参考URL:http://homepage3.nifty.com/hippo2000/perltips/ph …
さらにご返事遅くなってしまいました。申し訳ありません。
リンクのご提供、ありがとうございます。
リンク先にある「mod_phpの相手は当然mod_perl」という記述、なるほどです。
実は以前、MySQLとPHPで作るブログ、なんて本を買ってまして、それで「perlじゃ遅くて出来ないからPHPなんだな」と早合点していたようです。
単純に<速度比較>という見地から考えていれば、このようにより詳細な情報を見つけることが出来たのですね。自分の疑問そのものがぼんやりとしていたのだということがよくわかりました。
私は「OKweb」から質問を記入したのですが、確かにPHPだから速いというわけでもなさそうですね。
ブラウジング障害が大変大きいようですね。。。
#1の方のご回答とあわせ、これでようやく概観がつかめました。安心してスクリプティングを続けていけそうです。サーバーのしくみについても、もう一度確認するようにします。
明瞭なご回答、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- サーバー メールサーバーについて詳しい方、メールサーバーの管理業務経験のある方、教えてください。 3 2022/11/12 18:24
- サーバー Webサイト構築フリーランスの案件受注について 1 2022/03/27 18:16
- PHP 「基礎からのMySQL 第3版 Kindle版」を数年前購入して全部やりました。 1 2022/09/15 05:32
- ASP・SaaS イントラネットを構築したい 2 2022/04/24 11:08
- ノンジャンルトーク 神や仏等は人間が心の救いの拠り所として想像上に作り出された存在でしか無いかと 苦難に立たされた時に気 1 2022/03/29 03:38
- VPN フリー wi-fi は安全ですか 自宅での wi-fi VPNを使用したら良い? 2 2022/05/31 04:12
- その他(IT・Webサービス) 動画が多い(容量が多い)Webサイト作成 1 2023/04/08 17:42
- その他(セキュリティ) 匿名チャットアプリでの知られたくない会話 個人情報について 1 2023/03/29 18:08
- ノンジャンルトーク ロシアプーチンは戦争犯罪と訴えてました 感想意見下さい バイデン大統領立場考えると発言力あるから生命 1 2022/04/06 01:34
- ニュース・時事トーク 電磁波攻撃の脅威を今頃悟る日本他国より危機管理能力乏しすぎるのは何故? 知ろうとする事はできるのにあ 1 2022/04/01 20:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
awkやsed等で特定の文字間を抜...
-
mixiのperl
-
swatchの設定について教えてく...
-
VBAでsmtp認証をするには?
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
VBAで旧字体を異字体に一括で変...
-
VBAで別モジュールへの変数の受...
-
ユーザー定義関数に#NAME?が返...
-
vba userFormのSubを標準モジュ...
-
Excel VBA マクロの実行方法に...
-
Access VBA標準モジュールにつ...
-
「デバイスは PRN を初期化でき...
-
Apache2 静的・動的モジュール...
-
Perl モジュールのアンインスト...
-
VBA This Workbookモジュール...
-
モジュールとは何ですか
-
VBAで「メモリが不足しています」
-
VBScriptでCurrentDirectoryを...
-
標準モジュールを削除したい。(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perlでmysqlのfetchrowとfetchr...
-
msgboxの表示
-
perlについて
-
awkやsed等で特定の文字間を抜...
-
cgi(perl)で文中のURLを自動で...
-
掲示板はPerlだけで作れますか?
-
perl デバッガで上矢印キーが使...
-
perl 「予定」が「嵐閧オ」に...
-
perlのバージョンによる動作の違い
-
perl -MCPAN -e shellの意味は?
-
swatchの設定について教えてく...
-
perlのIDE
-
mixiのperl
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
ユーザー定義関数に#NAME?が返...
-
グラフのX,Y座標を取得したい
-
Excel VBA 『Call』で呼び出す...
-
VBAで別モジュールへの変数の受...
-
エクセルVBAでシートモジュール...
おすすめ情報