
HTTPクライアント
http.Client、リクエスト、タイムアウト、transport、リダイレクト、cookie、カスタムヘッダー
18 面接問題·
Mid-Level
1http.Get と http.Client.Get の主な違いは何ですか?
1
http.Get と http.Client.Get の主な違いは何ですか?
回答
http.Get はカスタマイズができないデフォルトの HTTP クライアント(http.DefaultClient)を使用しますが、http.Client.Get ではタイムアウト、リダイレクトポリシー、カスタム transport などのパラメータを設定できます。本番環境では、リクエストの動作を制御し無期限のブロックを避けるため、カスタム HTTP クライアントを作成することが推奨されます。
2http.Client.Timeout が設定されていない場合、何が起こりますか?
2
http.Client.Timeout が設定されていない場合、何が起こりますか?
回答
明示的なタイムアウトがない場合、HTTP クライアントはサーバーの応答を無期限に待ち、サーバーが応答しないとアプリケーションをブロックする可能性があります。デフォルトのタイムアウトはゼロで、時間制限がないことを意味します。ブロックされた goroutine とリソースリークを避けるため、本番環境では常に妥当なタイムアウトを設定してください。
3HTTP リクエストにカスタムヘッダーを追加するにはどうすればよいですか?
3
HTTP リクエストにカスタムヘッダーを追加するにはどうすればよいですか?
回答
カスタムヘッダーは、http.NewRequest でリクエストを作成した後に http.Request.Header.Set() または Header.Add() を介して追加します。Set メソッドは既存の値を置き換え、Add は同じキーに新しい値を追加します。このアプローチは、認証、コンテンツネゴシエーション、またはカスタム識別子によるリクエストの追跡に必要です。
4
response.Body.Close() を呼び出すことがなぜ重要なのですか?
5
サーバーに JSON データを送信できる HTTP メソッドはどれですか?
+15 面接問題
その他のGo面接トピック
Goの基礎
Junior
25問Goのデータ構造
Junior
20問Go のインターフェース
Junior
18問エラー処理
Junior
20問Goroutine の基礎
Junior
20問Channels
Junior
22問Go Modules
Mid-Level
18問HTTP サーバー
Mid-Level
24問JSON エンコーディング
Mid-Level
20問Database/SQL
Mid-Level
22問context パッケージ
Mid-Level
20問Testing
Mid-Level
22問並行処理パターン
Mid-Level
24問同期プリミティブ
Mid-Level
22問Go Web フレームワーク
Mid-Level
20問REST API 設計
Mid-Level
20問gRPC
Mid-Level
22問Reflection
Senior
20問メモリ管理
Senior
24問パフォーマンス最適化
Senior
22問Generics
Senior
20問Go Design Patterns
Senior
24問Microservices
Senior
24問セキュリティと認証
Senior
24問Docker & Containerization
Senior
20問Kubernetes Basics
Senior
22問高度な Go
Senior
20問CLI開発
Senior
20問