• ベストアンサー

CGIとJavascriptの違いについて

benelliの回答

  • benelli
  • ベストアンサー率51% (78/152)
回答No.3

ややこしい事柄なので私なりにも補足いたしたいと思います。質問者さまの質問はインターネットの世界においてとても重要なことですので…… >Javascriptでは「クライアントがサーバーに処理要求を出すが、サーバーは処理をしないで、クライアントにhtmlを返してサーバーが処理をして、ブラウザが表示させる」 これについては、#1の方のおしゃるとおりはっきりいってデマです。「サーバーに処理要求を出すが、サーバーは処理をしない」のではなく「サーバーに処理要求を出そうと思えば出せなくもないが、出したってそのデータがどうなろうと知ったことではない」のですし、「クライアントにhtmlを返してサーバーが処理をして」はそもそも何を言っているのか分かりません。。。 本当にそのような記述があるのなら、その本のほかの部分もかなりアヤシイです。その本のCGIの説明も、なんだか雲行きが…… >Javascriptの場合、(1)サーバーの役割とはどのようなものでしょうか、 サーバーに一方的にデータを送ることはひとまず可能ですが、それ以外にサーバーとの関係はないです。クライアント側だけで動くのがJavaScriptですから、基本的にサーバーを気にする必要はありません。 >(2)サーバーから返されるhtmlとはどのようなものでしょうか サーバー側ではJavaScriptを実行できないので、そもそもサーバーはJavaScriptでは何もできません。根本的に本の内容が間違っているので、このことは忘れちゃってください。 >(3)この時のブラウザの役割、作業はCGIとはどのように違うのでしょうか。 CGI処理はサーバーで行われるものですので、ブラウザ側はサーバーから届いたHTMLを表示するだけで、特にこれといったことは何もしません。JavaScriptの処理は逆に、サーバー側は何もせずにブラウザ側がせっせと処理をしてその結果を改めて表示します。 CGIとJavaScriptでそれぞれ「現在の時間を表示する」プログラムを作った場合、CGIではサーバー内部の時間が、JavaScriptではページを開いているパソコン側の時間が表示されます。そのため、例えばアメリカのサーバーにある現在の時間を表示するWebページを日本で開いた場合、CGI処理ならアメリカの現地時間が、JavaScriptでは日本の現地時間が表示されます。 CGIとJavaScriptは一見すると似ていますが、その役割はまったく違います。そのためCGIもJavaScriptも使用していないWebページもあれば、CGIもJavaScriptも同時に使用しているWebページもあります。 JavaScriptがサーバー上で動かない以上、このページの教えて!gooに登録されているサーバー上の情報はJavaScriptでは制御できませんし、同様に銀行のサーバーにある預金データなどもJavaScriptだけでは表示させることはできません。そういう意味で、JavaScriptだけで現在日常的に使われているwebシステムを構築することは不可能という結論になります。 注意※JSP(JavaServerPage)なる技術はサーバー上で動作します。これも名前が似ているだけでJavaScriptとはまったく関係ない別物なので注意してください。また、JSPをJavaScriPtの略だと勘違いしちゃだめですよ。

関連するQ&A

  • javaScriptのセキュリティ

    javascriptの処理は、 クライアントサイドで改竄可能だと思っており、 高いセキュリティが求められる処理は、 サーバサイドがよい認識で合っていますでしょうか? 例えば、SQLインジェクション対策をjavascriptでしていたとして、以下の手順だとすり抜けられたりしないでしょうか? (1)ウェブページを表示して、ブラウザの「html保存」でクライアントサイドに保管する。 (2)html内で宣言されたjavascriptの各リンクも、一旦ダウンロードする。 (3)クライアントに落としてきたjavascriptを改竄する。 (4)クライアントに落としてきたhtml内のjavascriptのリンクをローカルのjavascriptに差し替えて、 サーバにリクエストする。 高いセキュリティが求められる処理は、 サーバサイドがよい認識で合っていますでしょうか?

  • JavaScriptからCGIを読み出す方法

    お世話になっています。 今回、JavaScriptからCGIで読み出した文章を出力する方法についての質問があり、 投稿させて頂きました。 まず、CGIで、例えばa.logというファイルを読み出し、ブラウザに出力する処理を書きます。 a.logファイルは全て文字列です。 次にHTML側で、適当にaタグでリンクを張ります。 このリンクをクリックすると、そのCGIが読み出した文章を特定の場所に出力する、 という処理をしたいのですが、うまく出来ません。 探していると、インラインフレームを使えばいいとよく見かけるのですが、 その方法は取りたくないのです。(サイトのデザインの関係上) 試したソースは、JavaScriptでファンクションの定義をし、 実行されれば以下のようなソースを出力する、というものでした。 <script language="JavaScript" src="read.cgi"></script> 自分でも無理があるな、とは思ってますが、これ意外思いつかなかったもので・・・ 皆様のお知恵をお貸しください。 お願いします。

  • JavaScriptの負荷について

    JavaScriptはクライアント側のパソコンに負荷がかかるだけで、サーバ側にはかからないものなのですか? perlやCGIはサーバに負担がかかるので、表示が遅くなったりしますが、Javascriptの場合は、クライアントのマシン性能次第という理解で間違いないでしょうか? そうなると、バリバリJavascriptを使ってきれいなサイトを作りたいと思うのですが。。。 誰か教えてください。よろしくお願いします。

  • ランダムイメージの処理、JavaScriptとCGI、どちらが速い?

    現在、表示イメージとそのイメージのリンク先を、ランダムで表示するような処理を JavaScriptで書いてWEBサイトで使ってます。 今のところ要素数が5つくらいなのですが、今後10、20と増えた時の 読み込み時間が気になり始めました。 ランダムの要素は配列にnew Arrayしているのですが、 JavaScriptは配列のセットから表示まで全てブラウザで処理されますが CGIなら表示以外の部分はサーバ側でやってくれるので速かったりするのでは、と思っていて 実際はどうなのかを経験者の方にお聞きしたいです。 要点としては処理速度が速い方法を選択したいです。 ただし無料レンタルサーバがCGIしか使えないので、PHPなど他の言語は使えません。 よろしくお願いします。

  • HTML上(javascript)からCGIを実行する方法

    javascriptから外部実行ファイル(javascriptファイルではなくperlなどのCGI) を実行する方法を探しています。 下記のようにindex.htmとtest.cgiファイルを用意して、index.htm内の javascriptから外部cgiを実行させ、cgiの結果(test.cgiでは単に 『test』と表示するのみ)を表示したいと考えています。 利用増ですが、cgiやssiが使用できないサーバにindex.htmを置いて、 cgiが使用できるサーバ上のcgi結果を取得したいものです。 通常のcgiのように、1ページでcgi結果を表示するものではなく、 HTMLファイルの一部にcgi処理結果を表示させたいものです。 そもそも、SSIを使用しなければ下記のようなHTML内にcgiなどの 実行結果を表示する事は出来ないのでしょうか。 よろしくお願い致します。 ※下例のプログラムではcgi結果は表示されませんでした・・・。 ---<index.htm>---------------------------------------- <HTML> <BODY> <SCRIPT language="Javascript" src="http://xxx.xxx.xxx.xxx/test.cgi"></SCRIPT> </BODY> </HTML> ---<test.cgi>---------------------------------------- #!/usr/bin/perl print "test"

  • JavaAppletとJavaScriptの違い

     JavaAppletとJavaScriptの違いがよく分かりません。  本には、JavaScriptはあらかじめHTMLファイルの中に書き込んでおく、とあり、なんとなく分かるのですが。  JavaAppletは、HTMLを読み込んだ後、Javaの実行環境をInternetExploreなどのブラウザの中で呼び出し、ブラウザの内部でプログラムが実行される、と書いています。  また友人に聞くと、JavaScriptはHTMLの延長みたいなもの、JavaAppletはHTMLに埋め込まれたプログラムみたいなものと同じ、いいましたが、いまいち具体的にはよく理解できません。  JavaScriptもHTMLに埋め込まれているのではないのでしょうか。  もう少し分かりやすい説明ってあるのでしょうか。宜しくお願いします。

    • ベストアンサー
    • Java
  • JavaScriptを使えない環境について知りたい

    JavaScriptで小ウインドウを出して、クリック内容に応じて処理分岐させようと思っているのですが、 JavaScriptを使えない場合、どうなるのかが、気になっています。 JavaScriptを使えない環境とは、具体的にどういった環境が考えられるのでしょうか? ・古いブラウザ? ・スマートフォン? ・また、本来、使える環境なのに、ブラウザのJavaScriptを普段から使えないようにしている人とか、いるのでしょうか?  何か、そういうシェア割合みたいな資料はどこかにないでしょうか?

  • Ajax⇒CGI

    JavaScriptは結構知ってますが、 AjaxとPerlに関しては初心者のものです。 早速ですが質問です。 Ajaxで送信したデータをCGI(Perl)で処理して、 サーバーのテキストに保存する方法が良く分かりません。 サーバーはCGIを許可しているところを使っています。 どなたか詳しい方、ご教授お願いします!

  • javascriptのPHP化について

    宜しくお願い致します。 javascriptの外部ファイルをPHP化して、サーバサイドで動的に生成した内容を吐き出し、それをHTML側でjavascriptの外部ファイルとして受け取って処理しております。 この場合のブラウザがアクセスした際に処理される順番は・・・ (1)HTMLの読み込み開始 (2)header内のjavascript外部ファイルの読み込みと実行 (3)HTMLファイルのbody以下を読み込み (4)結果をブラウザに返して表示 という流れになるはずです。 この場合、(2)のjavascript外部ファイルの方がbodyより先に実行されるはずです。 しかし、javascript外部ファイル内のPHPでセッションデータを扱っている場合、(3)のbody内でPHPでセッションを定義した内容が、なぜか(2)のjavascript外部ファイルで反映されて実行されるのです。 私のイメージでは・・・ (1)HTMLの読み込み開始 (2)header内のjavascript外部ファイルの読み込みと実行  ※この時セッションは反映しない (3)HTMLファイルのbody以下を読み込み  ※この時にセッションを入れても(2)が既に実行さられているので反映しない (4)結果をブラウザに返して表示  ※結果、セッションにデータが入っておらず、php側でエラーを吐き出しjavascriptが止まる という様になるかと思ってましたが、なぜか実行されます。 javascriptはHTMLが全部読み込まれてから実行されるのでしょうか?

  • CGIについて質問です 基本の基本です

    CGIについて勉強しようと考えているのですが全く意味が分かりません。 ブラウザの要求に対して、プログラムを起動さすためのサーバー側の仕組み。ということは分かるのですが、HPの中でどういう風に使用すればいいのでしょうか。 JavaScriptみたいに記述するのでしょうか。 それともCGIはサーバー側のシステムでこちらはPHPやPerl(PHPやPerlも言語ということしか分かりません。JavaScriptと同じ様な捉え方でいいのでしょうか)を使ってCGIを起動さすという考え方でいいのでしょうか。 全く知識はありませんが、WEBに関して色々勉強したいと考えているのでよろしくお願いいたします。

    • ベストアンサー
    • CGI