Go

Cliente HTTP

http.Client, requests, timeouts, transport, redirecciones, cookies, headers personalizados

18 preguntas de entrevista·
Mid-Level
1

¿Cuál es la principal diferencia entre http.Get y http.Client.Get?

Respuesta

http.Get usa un cliente HTTP por defecto (http.DefaultClient) que no ofrece ninguna personalización, mientras que http.Client.Get permite configurar parámetros como timeouts, políticas de redirección o transport personalizado. En producción, se recomienda crear un cliente HTTP personalizado para controlar el comportamiento de las peticiones y evitar bloqueos indefinidos.

2

¿Qué pasa si http.Client.Timeout no está definido?

Respuesta

Sin un timeout explícito, el cliente HTTP espera indefinidamente la respuesta del servidor, lo que puede bloquear la aplicación si el servidor no responde. El timeout por defecto es cero, lo que significa sin límite de tiempo. Siempre define un timeout razonable en producción para evitar goroutines bloqueadas y fugas de recursos.

3

¿Cómo agregar headers personalizados a una petición HTTP?

Respuesta

Los headers personalizados se agregan mediante http.Request.Header.Set() o Header.Add() después de crear la petición con http.NewRequest. El método Set reemplaza los valores existentes mientras que Add añade un nuevo valor para la misma clave. Este enfoque es necesario para la autenticación, la negociación de contenido o el seguimiento de peticiones con identificadores personalizados.

4

¿Por qué es importante llamar a response.Body.Close()?

5

¿Qué método HTTP permite enviar datos JSON al servidor?

+15 preguntas de entrevista

Domina Go para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis