ホームページ > バックエンド開発 > Golang > Go で CGI を使用するにはどうすればよいですか?

Go で CGI を使用するにはどうすればよいですか?

WBOY
リリース: 2023-05-11 16:01:36
オリジナル
1965 人が閲覧しました

Go で CGI を使用することは、一般的な Web 開発テクノロジです。この記事では、Go で CGI を使用して Web アプリケーションを実装する方法を紹介します。

CGIとは何ですか?

CGI は Common Gateway Interface の略で、Web サーバーと他のアプリケーション間の対話のための標準プロトコルです。 CGI を使用すると、Web サーバーは他のアプリケーションにリクエストを送信し、その応答を受信して​​クライアントに送り返すことができます。 CGI は、さまざまな種類の Web アプリケーションの作成に使用できる、非常に柔軟でスケーラブルなテクノロジです。

Go での CGI の使用

Go での CGI の使用は、他のプログラミング言語と似ています。まず、Web リクエストを処理する CGI スクリプトを作成する必要があります。次に、Web サーバーに CGI 実行スクリプトのパスを設定します。最後に、Web リクエストが CGI スクリプトに送信されます。

CGI スクリプトの作成

Go では、標準ライブラリの「net/http/cgi」パッケージを使用して CGI スクリプトを作成できます。パッケージには、2 つのパラメータを受け入れる「ServeCGI」と呼ばれる関数が含まれています。実行される CGI スクリプトのコマンドを表す「cmd」文字列と、クライアント側に書き込まれる応答を表す http.ResponseWriter 型の変数です。簡単な CGI スクリプトの例を次に示します。

package main

import (
    "fmt"
    "net/http"
    "net/http/cgi"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        cgi.Handler{
            Path: "/path/to/cgi/script.cgi",
            Dir:  "/path/to/cgi/directory",
            Env:  []string{},
        }.ServeHTTP(w, r)
    })

    fmt.Println("Listening on :8080...")
    http.ListenAndServe(":8080", nil)
}
ログイン後にコピー

上の例では、Web リクエストを指定された CGI スクリプトに送信する「/」ルートを作成しました。 Handler 構造では、CGI スクリプトのパスとディレクトリ、および環境変数 (必要な場合) を指定する必要があることに注意してください。

Web サーバーの構成

Web サーバーで CGI スクリプトを構成するには、Web サーバーの構成ファイルを編集し、次の行を追加する必要があります:

ScriptAlias /cgi-bin/ /path/to/cgi/directory/
ログイン後にコピー

上の例では、「/cgi-bin/」パスを CGI スクリプトが配置されているディレクトリにマップします。次に、Web リクエストを「/cgi-bin/script.cgi」パスに送信すると、Web サーバーが CGI スクリプトを自動的に実行します。

Web リクエストの送信

これで、Go で CGI を使用する準備が整いました。 Web リクエストを送信するには、ブラウザで「http://localhost:8080/」にアクセスすると、Web サーバーがリクエストを CGI スクリプトに自動的に送信します。

概要

CGI は、さまざまな種類の Web アプリケーションの作成に使用できる一般的な Web 開発テクノロジです。 Go では、標準ライブラリの「net/http/cgi」パッケージを使用して CGI スクリプトを作成できます。 CGI スクリプトを作成し、Web サーバーで CGI 実行スクリプトのパスを構成することで、CGI を使用して Go で Web アプリケーションを簡単に作成できます。

以上がGo で CGI を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート