
ไคลเอนต์ HTTP
http.Client, request, timeout, transport, redirect, cookie, custom header
1ความแตกต่างหลักระหว่าง http.Get และ http.Client.Get คืออะไร?
ความแตกต่างหลักระหว่าง http.Get และ http.Client.Get คืออะไร?
คำตอบ
http.Get ใช้ HTTP client เริ่มต้น (http.DefaultClient) ที่ไม่สามารถปรับแต่งได้ ในขณะที่ http.Client.Get อนุญาตให้กำหนดค่าพารามิเตอร์ เช่น timeout นโยบาย redirect หรือ transport แบบกำหนดเอง ใน production แนะนำให้สร้าง HTTP client แบบกำหนดเองเพื่อควบคุมพฤติกรรมของ request และหลีกเลี่ยงการบล็อกอย่างไม่มีกำหนด
2จะเกิดอะไรขึ้นถ้าไม่ได้กำหนด http.Client.Timeout?
จะเกิดอะไรขึ้นถ้าไม่ได้กำหนด http.Client.Timeout?
คำตอบ
หากไม่มี timeout ที่ชัดเจน HTTP client จะรอการตอบกลับจากเซิร์ฟเวอร์อย่างไม่มีกำหนด ซึ่งอาจบล็อกแอปพลิเคชันหากเซิร์ฟเวอร์ไม่ตอบสนอง timeout เริ่มต้นคือศูนย์ ซึ่งหมายถึงไม่มีการจำกัดเวลา ควรกำหนด timeout ที่เหมาะสมใน production เสมอเพื่อหลีกเลี่ยง goroutine ที่ถูกบล็อกและการรั่วไหลของทรัพยากร
3จะเพิ่ม custom header ให้กับ request HTTP ได้อย่างไร?
จะเพิ่ม custom header ให้กับ request HTTP ได้อย่างไร?
คำตอบ
custom header ถูกเพิ่มผ่าน http.Request.Header.Set() หรือ Header.Add() หลังจากสร้าง request ด้วย http.NewRequest เมธอด Set จะแทนที่ค่าที่มีอยู่ ในขณะที่ Add จะเพิ่มค่าใหม่สำหรับ key เดียวกัน แนวทางนี้จำเป็นสำหรับการยืนยันตัวตน การเจรจาเนื้อหา หรือการติดตาม request ด้วยตัวระบุแบบกำหนดเอง
ทำไมการเรียก response.Body.Close() จึงสำคัญ?
เมธอด HTTP ใดที่อนุญาตให้ส่งข้อมูล JSON ไปยังเซิร์ฟเวอร์?
+15 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Go อื่นๆ
พื้นฐาน Go
โครงสร้างข้อมูล Go
อินเทอร์เฟซใน Go
การจัดการข้อผิดพลาด
พื้นฐาน Goroutine
Channels
Go Modules
เซิร์ฟเวอร์ HTTP
การเข้ารหัส JSON
Database/SQL
แพ็กเกจ context
Testing
รูปแบบ Concurrency
ไพรมิทีฟการซิงโครไนซ์
เฟรมเวิร์กเว็บ Go
การออกแบบ REST API
gRPC
Reflection
การจัดการหน่วยความจำ
การเพิ่มประสิทธิภาพการทำงาน
Generics
Go Design Patterns
Microservices
ความปลอดภัยและการยืนยันตัวตน
Docker & Containerization
Kubernetes Basics
Go ขั้นสูง
การพัฒนา CLI
เชี่ยวชาญ Go สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี