1. はじめに
Golang は、他の言語と比較してコンパイル速度が速く、効率的な同時処理機能があり、メモリ使用量が少ないため、ますます人気が高まっているプログラミング言語です。ネットワーク プログラミングでは、Go 言語の標準ライブラリに HTTP リクエストを処理するための組み込み関数が用意されているため、ネットワーク リクエストの処理が非常に簡単になります。
この記事では、Golang による HTTP リクエストの処理の基本を紹介し、Golang を使用して HTTP リクエストを処理する単純な HTTP サーバーを作成する方法を示します。
2. 基礎知識
Golang では、HTTP リクエストを処理するための関連メソッドが http パッケージに格納されています。 HTTP サーバーを起動するには、http.ListenAndServe() 関数を使用します。
この関数は 2 つのパラメータを受け入れます:
func ListenAndServe(addr string, handler Handler) error
最初のパラメータ addr は、サーバーによって監視されるアドレスです。このアドレスは、「:8080」などの文字列タイプである必要があります。 address が空の文字列に設定されている場合、サーバーは利用可能なすべてのネットワーク インターフェイスをリッスンします。
2 番目のパラメーター ハンドラーは、http.Handler インターフェイスを実装するオブジェクトです。このオブジェクトは、HTTP リクエストを処理するために使用されます。このインターフェイスを実装する最も簡単な方法は、ServeHTTP メソッドを含む構造体を作成することです。
ServeHTTP() メソッドは 2 つのパラメーターを受け入れます。1 つは HTTP 応答の書き込みに使用される ResponseWriter オブジェクト、もう 1 つは HTTP 要求の処理に使用される Request オブジェクトへのポインターです。
type Handler interface { ServeHTTP(ResponseWriter, *Request) }
http パッケージを使用して HTTP リクエストを処理するための最も基本的な要件として、このインターフェイスを実装する必要があります。次の例では、最も単純な HTTP サーバーを作成する方法を示します。
3. 例
以下は、単純な HTTP サーバーのサンプル コードです:
package main import ( "fmt" "log" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello, World!") }) log.Fatal(http.ListenAndServe(":8080", nil)) }
このプログラムでは、http.HandleFunc() メソッドを呼び出して、 function 特定のパスへの HTTP リクエストのハンドラーに登録します。この関数の 2 つのパラメーターは、HTTP 応答オブジェクトと要求オブジェクトを表します。この関数では、 fmt.Fprint() メソッドを使用して、HTTP 応答を ResponseWriter オブジェクトに書き込みます。
最後に、http.ListenAndServe() メソッドを使用して HTTP サーバーを起動します。この関数は、SIGTERM または SIGINT シグナルを受信するか、ListenAndServe() の実行中にエラーが発生するまで実行されます。
この単純な HTTP サーバーは、次のコマンドを使用して実行できます:
go run main.go
次に、ブラウザにアドレス「http://localhost:8080」を入力して、HTTP サーバーをテストします。
Golang を HTTP サービスに使用する最大の利点の 1 つは、優れた同時処理機能です。上の例では、ゴルーチンを使用してリクエストを処理しました。リクエストが来ると、ゴルーチンは http.HandleFunc() メソッドに登録した関数を呼び出し、前のリクエストが完了するのを待たずにリクエストを処理します。これにより、HTTP サーバーは大量の同時リクエストを処理できるようになります。
4. 結論
この記事を読むことで、Golang で HTTP リクエストを処理する方法と、組み込みの http パッケージを使用して単純な HTTP サーバーを作成する方法をすでに理解しているはずです。
現在、Golang は、高速かつ効率的で、書きやすく、保守も容易な言語として、プログラマーの間でますます人気が高まっています。将来的には、ネットワーク プログラミングやその他の高負荷アプリケーションの開発にとって、これは間違いなく理想的な選択肢となるでしょう。
以上がgolang は http リクエストを処理しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。