\r\n\r\n

cgiスクリプトとは何ですか?また、どのようにウェブサイトを改善することができますか?

cgiはパブリックゲートウェイインターフェースの略です。ウェブサーバーがプログラムを実行し、ウェブブラウザーの出力を生成するための標準的なプロトコルである。cgiスクリプトについて、また、cgiスクリプトがどのようにあなたのウェブサイトを向上させるかについて、すべてを学びます...

CGIとは、Common Gateway Interfaceの略。ウェブサーバーがプログラムを実行し、ウェブブラウザーの出力を生成するための標準的なプロトコルである。このプログラムは、CGIプログラム(またはCGIスクリプト)と呼ばれます。ユーザーのWebブラウザが特定のURLを要求すると、Webサーバーに代わって実行され、出力を生成する。

CGIのメリット

CGIはWebサイトを様々な面で強化します。ユーザー認証から総合的なショッピング・アプリケーションまで、CGIはWebをダイナミックでインタラクティブなものにする中心的存在です。ここでは、CGIを使ってユーザーエクスペリエンスを向上させる主な利点を紹介します。

  • ユーザーへのパーソナライズ:ユーザーごとに出力をパーソナライズすることが可能です。例えば、ユーザーが銀行口座の残高を確認する場合、データベースから取得する必要がある場合があります。
  • その他のパーソナライゼーション:ユーザーは**を使ってサイトにアクセスしている場合があり、出力を**の解像度に調整する必要があります。
  • Make an update: フォーム投稿の結果、更新を行う(以下で説明)。例: Facebookのステータスを更新する場合など。
  • ファイルのアップロード:ユーザーがアップロードしたファイルは、サーバー側のCGIでファイルアップロードのリクエストを処理し、特定の場所に保存される必要があります。
  • 出力の生成:多くのウェブサイトでは、ブラウザに出力を表示するだけでなく、Word文書やPDFなど、他の形式の出力も提供しています。これらのドキュメントの中には、電話料金やクレジットカードの明細など、CGIで動的に生成する必要があるものもあります。

cgisによる静的ファイルの提供

HTMLファイル(JavaScriptやCSSも同様)は、ウェブサーバーから直接提供されます。一方、CGIプログラムは、特定のURLが要求されたときに、Webサーバーが実行するプログラムです。動的な情報(データベースに存在する情報など)へのアクセスを必要とするリクエストに対応するために使用されます。例えば、アクセスを許可するためのユーザー認証:ユーザー名とパスワードはデータベースに保存することができ、ユーザー認証のリクエストはこの情報へのアクセスを必要とします。このリクエストを処理するために、WebサーバーはCGIプログラムを実行して情報を探し出し、ユーザーを認証します。

Webサーバーの設定

Webサーバーは、HTMLファイルを提供したり、CGIプログラムを実行して動的に出力を生成する機能を提供するHTTPサーバーソフトウェアが動作します。 HTTPサーバーソフトウェアは、特定のパターンに一致するURLを要求されたときに特定のプログラムを実行するようにWebサーバー管理者によって設定されます。

CGIの実行

ユーザーのブラウザが特定のURLにリクエストを出すと、ブラウザはHTTPヘッダーと場合によってはHTTPボディの形で多くの情報を送信します。その中には、以下のようなものが含まれる場合があります。

  • ブラウザの種類
  • ユーザー名 (ログインしている場合)
  • ウェブサーバーが過去に保存したすべてのCookie
  • フォーム変数 (リクエストがPOSTリクエストの場合)

CGIは、この情報の一部または全部を使って、リクエストを処理し、ユーザーへの出力をカスタマイズすることができます。

加工フォームの投稿

CGIの主な用途は、HTMLのフォームを扱うことです。

HTMLフォームは、ユーザーが入力を行えるようにさまざまなコントロールを提供するユーザーインタラクションデバイスです。ユーザーがフォームの送信ボタンなどをクリックすると、Webブラウザがフォームの情報を集約して、フォームに記載された送信先のURLに送信する。一方、Webサーバーは通常、CGIプログラムを呼び出して、ユーザーから収集したすべての入力を送信する。このやりとりはフォームPOSTと呼ばれ、CGIがフォームの内容を処理し、適切なレスポンスを生成してブラウザに送信する方式の技術用語です。

cgiの例

以下は、pythonで書かれたCGIプログラムのサンプルです。これは、次のようなURLからアクセスできるようにWebサーバーに配置することができます。http://www.example.com/cgi-bin/env.cgi。呼び出されると、CGIはその環境にあるWebサーバーから受け取ったすべての変数を報告します。これは、CGIプログラムとしては非常にシンプルなものです。

#!/usr/bin/pythonimport osprint "Content-type: text/plain"for key in os.environ: print key, "=>\"", os.environ[key], "\""

cgisの進化

cgiは、Webの黎明期からほとんどWebサーバーの一部となっています。史上初のWebサーバーであるNCSA HTTPd Webサーバーは、当初、静的ファイルのみをサポートしていました。そして、URLのリクエストに応じてスクリプトを実行することで、Webサーバーが動的なコンテンツを生成できることが認識され、CGI仕様が誕生したのである。

初期のCGIプログラムは、Perl、Tcl、shellなどの言語で書かれたシンプルなスクリプトでした。また、C/C++などのコンパイル言語で記述することも可能ですが、その場合はプログラムをコンパイルして実行可能なCGIを作成するという工程が追加されます。

CGIが複雑化し、ユーザーの要求が高まるにつれ、各リクエストを処理するために個別のCGIプロセスを作成することは、メモリとCPUのオーバーヘッドの点で負担が大きすぎると認識されるようになりました。特に、リクエストに対応する時間が、新しいプロセスを作る時間よりも短い場合は、その傾向が顕著でした。

この時点で、Webサーバーは高度なスクリプトインタプリタを組み込み、ユーザーのリクエストを1つのWebサーバープロセス内の別々のスレッドで処理できるようになった。これにより、リクエストの処理効率が上がり、レスポンスタイムが短縮されました。

これは、PHPのようなWebに特化した新しい言語の出現と重なります。PHPのインタープリタは、CGIプログラム自体から始まります。リクエスト処理の一環として、リクエストファイル内のPHPコマンドを解析し、そのコマンドを実行します。

現在では、CGIスクリプト以外にも、リクエストに応じてサーバー上でコードを実行する手法が多く使われています。

会社のホームページでCGIスクリプトを使用しているところはありますか?CGIスクリプトの導入やメンテナンスで、特に問題になったことはありますか?以下のコメント欄で議論してください。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ