Go

HTTP Client

http.Client, request, timeout, transport, redirect, cookie, custom header

18 câu hỏi phỏng vấn·
Mid-Level
1

Sự khác biệt chính giữa http.Get và http.Client.Get là gì?

Câu trả lời

http.Get sử dụng một HTTP client mặc định (http.DefaultClient) không cung cấp khả năng tùy chỉnh, trong khi http.Client.Get cho phép cấu hình các tham số như timeout, chính sách redirect hoặc transport tùy chỉnh. Trong môi trường production, nên tạo một HTTP client tùy chỉnh để kiểm soát hành vi của request và tránh bị chặn vô thời hạn.

2

Điều gì xảy ra nếu http.Client.Timeout không được thiết lập?

Câu trả lời

Nếu không có timeout rõ ràng, HTTP client sẽ chờ phản hồi của server vô thời hạn, điều này có thể chặn ứng dụng nếu server không phản hồi. Timeout mặc định là 0, nghĩa là không giới hạn thời gian. Luôn thiết lập một timeout hợp lý trong production để tránh các goroutine bị chặn và rò rỉ tài nguyên.

3

Làm thế nào để thêm custom header vào một request HTTP?

Câu trả lời

Custom header được thêm thông qua http.Request.Header.Set() hoặc Header.Add() sau khi tạo request bằng http.NewRequest. Phương thức Set thay thế các giá trị hiện có trong khi Add thêm một giá trị mới cho cùng một key. Cách tiếp cận này cần thiết cho việc xác thực, đàm phán nội dung hoặc theo dõi request với các định danh tùy chỉnh.

4

Tại sao việc gọi response.Body.Close() lại quan trọng?

5

Phương thức HTTP nào cho phép gửi dữ liệu JSON đến server?

+15 câu hỏi phỏng vấn

Nắm vững Go cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí