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 클라이언트는 서버 응답을 무기한 기다리며, 서버가 응답하지 않으면 애플리케이션을 블로킹할 수 있습니다. 기본 타임아웃은 0이며, 이는 시간 제한이 없음을 의미합니다. 블로킹된 goroutine과 리소스 누수를 피하기 위해 프로덕션에서는 항상 합리적인 타임아웃을 설정하세요.

3

HTTP 요청에 커스텀 헤더를 추가하는 방법은 무엇입니까?

답변

커스텀 헤더는 http.NewRequest로 요청을 생성한 후 http.Request.Header.Set() 또는 Header.Add()를 통해 추가합니다. Set 메서드는 기존 값을 대체하고 Add는 같은 키에 새 값을 추가합니다. 이 방식은 인증, 콘텐츠 협상 또는 커스텀 식별자를 통한 요청 추적에 필요합니다.

4

response.Body.Close()를 호출하는 것이 왜 중요합니까?

5

서버에 JSON 데이터를 보낼 수 있는 HTTP 메서드는 무엇입니까?

+15 면접 질문

다음 면접을 위해 Go을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기