Go

HTTPクライアント

http.Client、リクエスト、タイムアウト、transport、リダイレクト、cookie、カスタムヘッダー

18 面接問題·
Mid-Level
1

http.Get と http.Client.Get の主な違いは何ですか?

回答

http.Get はカスタマイズができないデフォルトの HTTP クライアント(http.DefaultClient)を使用しますが、http.Client.Get ではタイムアウト、リダイレクトポリシー、カスタム transport などのパラメータを設定できます。本番環境では、リクエストの動作を制御し無期限のブロックを避けるため、カスタム HTTP クライアントを作成することが推奨されます。

2

http.Client.Timeout が設定されていない場合、何が起こりますか?

回答

明示的なタイムアウトがない場合、HTTP クライアントはサーバーの応答を無期限に待ち、サーバーが応答しないとアプリケーションをブロックする可能性があります。デフォルトのタイムアウトはゼロで、時間制限がないことを意味します。ブロックされた goroutine とリソースリークを避けるため、本番環境では常に妥当なタイムアウトを設定してください。

3

HTTP リクエストにカスタムヘッダーを追加するにはどうすればよいですか?

回答

カスタムヘッダーは、http.NewRequest でリクエストを作成した後に http.Request.Header.Set() または Header.Add() を介して追加します。Set メソッドは既存の値を置き換え、Add は同じキーに新しい値を追加します。このアプローチは、認証、コンテンツネゴシエーション、またはカスタム識別子によるリクエストの追跡に必要です。

4

response.Body.Close() を呼び出すことがなぜ重要なのですか?

5

サーバーに JSON データを送信できる HTTP メソッドはどれですか?

+15 面接問題

次の面接に向けてGoをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める