Golang 言語の力は、その高効率と強力なネットワーク プログラミング機能にあります。その中でも、HTTP プロキシ リクエストは開発者がよく遭遇する問題の 1 つです。
この記事では、Golang を使用して HTTP プロキシ リクエストを作成する方法を説明します。これは次の手順で実現します。
HTTP プロキシ リクエストの仕組みを理解する
HTTP プロキシ リクエストは、クライアントがプロキシ サーバー経由でリクエストを送信してターゲットにアクセスできるようにするネットワーク通信プロトコルです。 Webサイト 。このプロキシ サーバーは、リクエストと応答を転送することにより、クライアントとターゲット サーバー間の直接通信をブロックします。プロキシ サーバーには、フォワード プロキシとリバース プロキシの 2 種類があります。
フォワード プロキシは、クライアントとターゲット サーバーの間にあるサーバーです。クライアントはプロキシ サーバーにリクエストを送信し、プロキシ サーバーはそのリクエストをターゲット サーバーに転送し、ターゲット サーバーの応答をクライアントに返します。フォワード プロキシを使用すると、クライアント IP アドレスを隠し、ネットワーク内のデータを制御および監視できます。
リバース プロキシは、ターゲット サーバーとクライアントの間に位置するサーバーです。リクエストを最適なサーバーに転送して、システムのパフォーマンス、スケーラビリティ、セキュリティを向上させます。リバース プロキシは、効率的なネットワーク通信を確保するための負荷分散によく使用されます。
この記事では、Golang を使用してフォワード プロキシ リクエストのコードを記述する方法を紹介します。
HTTP プロキシ リクエスト コードの記述
次に、Golang を使用して HTTP プロキシ リクエスト コードを記述する方法を紹介します。
package main import ( "fmt" "net/http" )
func handler(w http.ResponseWriter, r *http.Request) { response, err := http.Get("https://www.google.com") if err != nil { fmt.Fprintf(w, "Error Occured: %s", err.Error()) }else { fmt.Fprintf(w, "<html><head><title>%s</title></head><body>", response.Status) fmt.Fprintf(w, "<h1>Status</h1>") fmt.Fprintf(w, "<pre class="brush:php;toolbar:false">%s", response.Status) fmt.Fprintf(w, "
%s: %s", k, v[0]) } fmt.Fprintf(w, "