Go を使用して基本的な Web サーバーを構築する方法

Go を使用して基本的な Web サーバーを構築する方法

Go は、最新の Web アプリケーションやシステム ソフトウェアを構築するための興味深いプログラミング言語です。リリース後大きな話題を呼び、Docker、Kubernetes、Terraform、Dropbox、Netflixなどのサービスを強化しました。

さらに、Go には組み込みパッケージの堅牢なコレクションがあるため、Web プログラミングに最適です。この記事では、Go で基本的なWeb サーバーを作成する方法を説明します。

必要なパッケージをインポートする

net/HTTP パッケージは、Web サーバーとクライアントの作成に必要なものをすべて提供します。このパッケージには、Web プログラミングを処理するための便利な関数がいくつか含まれています。

ソース コードの先頭に以下の行を追加することでインポートできます。

import "net/http"

この記事では、fmtパッケージを使用して文字列をフォーマットし、logパッケージを使用してエラーを処理します。上記のように個別にインポートすることも、単一の import ステートメントを使用してすべてのパッケージをインポートすることもできます。

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

必要なパッケージをインポートした後、main 関数の作成に進むことができます。ソース ファイルを.go拡張子を付けて保存してください。Vim を使用している場合は、以下のコマンドを使用して Vim を保存して終了します。

:wq server.go

main関数を書く

Go プログラムは、「main」という適切な名前が付けられた main 関数内に直接存在します。ここでサーバー呼び出しを行う必要があります。次の行をソース コードに追加して、その動作を確認してください。

func main() {
http.HandleFunc("/", index)
log.Fatal(http.ListenAndServe(":8080", nil))
}

この例では、 funcキーワードを使用して main 関数を定義しています。 Go には開始中括弧の位置に関する厳密な規則があるため、開始中括弧が正しい行上にあることを確認してください。 main の最初のステートメントは、ルート パス ( "/" ) へのすべての Web リクエストがhttp.HandlerFunc型の関数であるインデックスによって処理されることを定義します。

2 行目では、http.ListenAndServe関数を介して Web サーバーを起動します。これは、サーバーのポート 8080 で受信 HTTP リクエストを継続的にリッスンするようサーバーに信号を送ります。この関数の 2 番目のパラメーターは、プログラムを最後までブロックするために必要です。

http.ListenAndServe は常にエラーを返すため、この例ではこの呼び出しをlog.Fatal呼び出し内にラップします。このステートメントは、サーバー側で生成されたエラー メッセージをログに記録します。

処理機能の実装

ご覧のとおり、main 関数はハンドラー関数インデックスを呼び出してクライアント要求を処理します。ただし、この例では、サーバーに対してこの機能がまだ定義されていません。

インデックス関数を使用できるようにするために必要なステートメントを追加しましょう。

func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, welcome to %s!", r.URL.Path[1:])
}

この関数は、タイプhttp.ResponseWriterおよびhttp.Requestの 2 つの異なる引数を受け取ります。http.ResponseWriterパラメータには、受信リクエストに対するサーバーの応答がhttp.Requestオブジェクトの形式で含まれます。

fmtパッケージの関数Fprintf は、テキスト文字列の表示と操作に使用されます。この記事では、これを使用して Web リクエストに対するサーバーの応答を表示しています。最後に、r.URL.Path[1:]要素を使用して、ルート パスの後のデータをフェッチします。

残りのパーツをすべて追加します

残りのコンポーネントをすべて追加すると、Go Web サーバーの準備が整います。コードは次のようになります。

import (
"fmt"
"log"
"net/http"
)
func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, welcome to %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", index)
log.Fatal(http.ListenAndServe(":8080", nil))
}

最初の行は、この Go Web サーバー コードを実行可能ファイルとしてコンパイルするために必要です。

Go を使用して基本的な Web サーバーを構築する方法

この Go Web サーバー コードを実行可能ファイルとしてコンパイルします。


2024 年世界の安価な SSL 証明書プロバイダー トップ 10

2024 年世界の安価な SSL 証明書プロバイダー トップ 10

SSL 証明書は、機密の顧客情報を安全に保ち、オンライン ビジネスのための安全な環境を構築するのに役立ちます。

Windows でワイヤレス ネットワーク アダプターの優先周波数帯域を変更する方法

Windows でワイヤレス ネットワーク アダプターの優先周波数帯域を変更する方法

このガイドでは、Windows 7、Windows 8、および Windows 10 のワイヤレス ネットワーク アダプターに既定で使用される優先周波数帯域を (5 GHz または 2.4 GHz に) 変更する方法を説明します。

プロセッサ アフィニティとは何ですか? Windows 10 でプロセッサ アフィニティを設定する方法

プロセッサ アフィニティとは何ですか? Windows 10 でプロセッサ アフィニティを設定する方法

ただし、すべてのコアではなく 1 つまたは 2 つのコアのみを使用するようにプログラムをセットアップすることは可能です。この投稿では、Quantrimang.com がプロセッサ アフィニティとは何か、および Windows 10 でプロセッサ アフィニティを設定する方法について説明します。

プライバシー保護が最悪の VPN は避けるべきです

プライバシー保護が最悪の VPN は避けるべきです

VPN テクノロジーの人気の高まりにより、範囲、手法、大胆さが異なるさまざまな詐欺が発生しています。

Windows 10でPCをリモートロックする方法

Windows 10でPCをリモートロックする方法

Windows 10 には、デバイスを追跡するだけでなく、リモートでロックすることもできる優れた機能があります。

SpyHunter を使用してスパイウェアを削除し、キーロガーを防ぐ方法

SpyHunter を使用してスパイウェアを削除し、キーロガーを防ぐ方法

SpyHunter は、コンピュータ上のマルウェア、スパイウェア、およびキーロガー対策ソフトウェアを検索して破壊するソフトウェアです。

Windows 10 の新しいハード ドライブ容量分析ツール、ディスク使用量を試してみる

Windows 10 の新しいハード ドライブ容量分析ツール、ディスク使用量を試してみる

ディスク使用量は C:\Windows\System32\diskusage.exe にあり、discusage /? と入力すると使用方法の説明が表示されます。このユーティリティは、ドライブ全体または指定したフォルダーをスキャンし、各フォルダーの使用量を報告します。

Windows 10/11にMoon Knightテーマをインストールする方法

Windows 10/11にMoon Knightテーマをインストールする方法

Moon Knight テーマ セットは非常に高品質で、すぐにコンピュータにインストールする価値があります。

「ファイル名を指定して実行」コマンドを使用して Windows アプリケーションをすばやく開く手順

「ファイル名を指定して実行」コマンドを使用して Windows アプリケーションをすばやく開く手順

Windows でアプリケーションをすばやく開く必要がある場合、キーボード ショートカットを使用することがよくあります。ただし、「ファイル名を指定して実行」コマンドを使用するという別の方法があることを知っている人はほとんどいません。 Windows でさまざまなアプリケーションを開くための [ファイル名を指定して実行] には多くのコマンドがありますが、最も一般的なのは、以下のアプリケーションを開くための 5 つのコマンドです。ご参照ください。

Windows 10 コンピューターにウイルスが感染しています。修復方法は次のとおりです。

Windows 10 コンピューターにウイルスが感染しています。修復方法は次のとおりです。

悪意のあるコードがコンピュータにインストールされると、すぐにコンピュータが制御され、非常に重大なエラーが発生する可能性があります。ダウンロードしてインストールするウイルス対策ソフトウェアであっても、場合によっては偽のソフトウェアである可能性があり、コンピュータに損害を与える可能性があります。