httpbin คืออะไร? Endpoints, วิธีใช้งาน และทางเลือกอื่น ๆ

httpbin คืออะไร? บริการรับส่งคำขอและตอบกลับ HTTP ที่เรียบง่ายสำหรับการทดสอบไคลเอนต์ เรียนรู้เกี่ยวกับเอนด์พอยต์หลัก วิธีใช้งานกับ curl วิธีโฮสต์ด้วยตนเองโดยใช้ Docker และทางเลือกที่ดีที่สุดสำหรับ httpbin

INEZA Felin-Michel

INEZA Felin-Michel

3 July 2026

httpbin คืออะไร? Endpoints, วิธีใช้งาน และทางเลือกอื่น ๆ

Apidog สำหรับองค์กร

การติดตั้งแบบ On-Premises

SSO & RBAC

รองรับมาตรฐาน SOC 2

สำรวจ Apidog Enterprise

หากคุณเคยต้องการทดสอบ HTTP client โดยไม่ต้องตั้งค่า backend จริงๆ คุณน่าจะเคยใช้ httpbin มาก่อน เป็นเว็บเซอร์วิสขนาดเล็กที่สะท้อนคำขอของคุณกลับมาให้คุณ เพื่อให้คุณเห็นว่าโค้ดของคุณส่งอะไรไปบ้างอย่างถูกต้อง ทำให้เหมาะสำหรับการดีบักเฮดเดอร์ ตรวจสอบว่า client ของคุณจัดการกับข้อผิดพลาด 500 อย่างไร หรือยืนยันว่าโทเค็นการรับรองความถูกต้องของคุณถูกส่งไปในคำขอจริง คุณสามารถใช้เครื่องมือใดก็ได้กับมัน ตั้งแต่ คำสั่ง curl ธรรมดา ไปจนถึง client เต็มรูปแบบอย่าง Apidog โครงการนี้อยู่ที่ httpbin.org และเป็นโอเพนซอร์สภายใต้ใบอนุญาต ISC

button

httpbin คืออะไร?

httpbin คือบริการสำหรับคำขอและการตอบกลับ HTTP คุณส่งคำขอไปที่มัน แล้วมันจะส่งการอธิบายคำขอนั้นในรูปแบบ JSON กลับมาให้คุณ ไม่มีอะไรมากไปกว่านั้น มันถูกสร้างขึ้นโดย Kenneth Reitz ผู้พัฒนาเบื้องหลังไลบรารี Python ยอดนิยมอย่าง requests และเขียนขึ้นด้วย Python โดยใช้ Flask

คุณค่าของมันอยู่ที่ความเรียบง่าย สมมติว่าคุณต้องการทราบว่า HTTP client ของคุณตั้งค่าเฮดเดอร์ User-Agent ได้ถูกต้องหรือไม่ คุณเพียงแค่เรียกใช้ https://httpbin.org/headers และการตอบกลับจะแสดงรายการเฮดเดอร์ทั้งหมดที่เซิร์ฟเวอร์ได้รับ ไม่มีฐานข้อมูล ไม่มีการล็อกอิน ไม่ต้องตั้งค่าใดๆ คุณจะได้รับข้อมูลสะท้อนกลับของคำขอของคุณอย่างชัดเจน

httpbin.org เป็นอินสแตนซ์สาธารณะ และสะดวกสำหรับการตรวจสอบอย่างรวดเร็ว อย่างไรก็ตาม มันอาจทำงานช้าหรือหยุดให้บริการชั่วคราวได้ เนื่องจากเป็นบริการฟรีที่ใช้ร่วมกัน การดูแลรักษาได้เปลี่ยนมือไปหลายปี; ปัจจุบันโค้ดอยู่ในรีโพ GitHub ของ postmanlabs/httpbin โดยมี forks จากชุมชนเช่น Kong’s อยู่ด้วย สำหรับสิ่งที่คุณใช้งานบ่อยๆ การโฮสต์ด้วยตัวเองเป็นทางเลือกที่ปลอดภัยกว่า ดูข้อมูลเพิ่มเติมด้านล่าง

ปลายทางหลักของ httpbin

httpbin มีชุดปลายทาง (endpoints) ที่แต่ละปลายทางมีจุดประสงค์เพื่อการทดสอบประเภทหนึ่ง นี่คือปลายทางที่คุณจะได้ใช้งานบ่อยที่สุด

ปลายทาง (Endpoint) หน้าที่
/get ส่งกลับอาร์กิวเมนต์การสอบถาม (query args), เฮดเดอร์ และ IP ต้นทางของคำขอ GET
/post ส่งกลับข้อมูลฟอร์ม, เนื้อหา JSON และเฮดเดอร์ที่คุณ POST ไป
/put, /patch, /delete แนวคิดเดียวกันสำหรับเมธอด HTTP อื่นๆ
/status/{codes} ส่งกลับรหัสสถานะที่คุณร้องขอ เช่น /status/404 หรือ /status/503
/headers ส่งกลับเฉพาะเฮดเดอร์ของคำขอที่เซิร์ฟเวอร์เห็น
/ip ส่งกลับที่อยู่ IP ต้นทางของคุณ
/user-agent ส่งกลับสตริง User-Agent ที่ client ของคุณส่งไป
/delay/{n} รอ n วินาทีก่อนตอบกลับ (สูงสุด 10 วินาที) สำหรับการทดสอบหมดเวลา
/basic-auth/{user}/{passwd} ส่งกลับ 200 เฉพาะเมื่อคุณส่งข้อมูลรับรอง Basic Auth ที่ตรงกัน
/bearer ตรวจสอบ Bearer token ในเฮดเดอร์ Authorization
/redirect/{n} ส่งคุณผ่านการเปลี่ยนเส้นทาง n ครั้ง สำหรับการทดสอบการจัดการการเปลี่ยนเส้นทาง
/cookies ส่งกลับคุกกี้ที่ client ของคุณส่งไป
/uuid ส่งกลับ UUID สุ่ม
/anything สะท้อนกลับทุกอย่างเกี่ยวกับคำขอ ไม่ว่าคุณจะใช้เมธอดใด

ปลายทาง /status/{codes} และ /delay/{n} คือฮีโร่เงียบที่นี่ พวกมันช่วยให้คุณบังคับเส้นทางข้อผิดพลาดและการตอบสนองที่ช้าได้ตามต้องการ ซึ่งเป็นเรื่องยากที่จะกระตุ้นกับ API จริง หากคุณต้องการสร้างเนื้อหาการตอบสนองปลอมแทนที่จะเป็นการสะท้อนกลับ ให้จับคู่ httpbin กับ fake API สำหรับข้อมูลทดสอบ

วิธีใช้ httpbin เพื่อทดสอบไคลเอนต์

วิธีที่เร็วที่สุดในการลองใช้ httpbin คือการใช้ curl ส่งคำขอ GET พร้อมพารามิเตอร์การสอบถาม:

curl "https://httpbin.org/get?tool=apidog&check=headers"

คุณจะได้รับออบเจกต์ JSON กลับมา แสดง args, headers ที่เซิร์ฟเวอร์ได้รับ และ IP origin ของคุณ สิ่งนี้ยืนยันว่าไคลเอนต์ของคุณส่งข้อมูลตามที่คุณคาดหวัง

หากต้องการทดสอบว่าโค้ดของคุณจัดการกับเนื้อหา POST อย่างไร ให้ส่ง JSON:

curl -X POST "https://httpbin.org/post" \
  -H "Content-Type: application/json" \
  -d '{"name": "widget", "qty": 3}'

httpbin จะสะท้อน json ที่ถูกแยกวิเคราะห์, data ดิบ และเฮดเดอร์กลับมา เพื่อให้คุณสามารถตรวจสอบ Content-Type และเพย์โหลดของคุณว่าส่งผ่านไปได้อย่างสมบูรณ์

ทีนี้ลองบังคับให้เกิดข้อผิดพลาดเพื่อทดสอบ logic การลองใหม่ของคุณ:

curl -i "https://httpbin.org/status/503"

คุณจะได้รับข้อความตอบกลับ 503 Service Unavailable จริงๆ ลองชี้การจัดการข้อผิดพลาดของไคลเอ็นต์ของคุณไปที่นี่ และยืนยันว่ามันลองใหม่หรือล้มเหลวอย่างสง่างาม สลับเป็น /delay/5 เพื่อจำลองปลายทางที่ทำงานช้าและตรวจสอบการตั้งค่าหมดเวลาของคุณ

คุณไม่จำเป็นต้องอยู่ในเทอร์มินัล REST client ใดๆ ก็สามารถเรียกใช้ URL เดียวกันเหล่านี้ได้ หากคุณชอบเวิร์กโฟลว์แบบกราฟิก ให้วาง https://httpbin.org/get ลงใน Apidog ส่งคำขอ และตรวจสอบการตอบกลับพร้อมกับการเน้นไวยากรณ์ ประวัติที่บันทึกไว้ และตัวแปรสภาพแวดล้อม ซึ่งมีประโยชน์เมื่อคุณต้องการเปรียบเทียบการตอบกลับระหว่างสภาพแวดล้อมต่างๆ หรือแบ่งปันการทดสอบกับเพื่อนร่วมทีม สำหรับการตั้งค่าที่เน้นเทอร์มินัลเป็นหลัก โปรดดู TUI REST API clients เหล่านี้

การโฮสต์ httpbin ด้วยตนเองโดยใช้ Docker

อินสแตนซ์สาธารณะของ httpbin.org นั้นดีสำหรับการตรวจสอบครั้งเดียว แต่ก็อาจถูกจำกัดอัตรา (rate-limited) หรือไม่พร้อมใช้งานเมื่อคุณต้องการ การรันสำเนาของคุณเองจะช่วยแก้ปัญหานั้นและรักษาทราฟฟิกการทดสอบของคุณให้เป็นส่วนตัว อิมเมจ Docker อย่างเป็นทางการทำให้งานนี้เป็นงานสองคำสั่ง

ดึงอิมเมจและรัน:

docker pull kennethreitz/httpbin
docker run -p 80:80 kennethreitz/httpbin

ตอนนี้บริการจะรับฟังที่พอร์ต 80 เข้าถึงได้ที่ http://localhost/get แล้วคุณจะได้รับพฤติกรรมเหมือนกับเว็บไซต์สาธารณะ โดยไม่มีความล่าช้าของเครือข่ายและไม่มีข้อจำกัดอัตราที่ใช้ร่วมกัน นี่คือการตั้งค่าที่คุณต้องการใน CI pipelines ซึ่งความน่าเชื่อถือเป็นสิ่งสำคัญ และคุณไม่ต้องการพึ่งพิงบริการภายนอก อิมเมจนี้เผยแพร่บน Docker Hub ในชื่อ kennethreitz/httpbin

หากพอร์ต 80 ถูกใช้งานอยู่บนเครื่องของคุณ ให้แมปพอร์ตโฮสต์อื่น ตัวอย่างเช่น docker run -p 8080:80 kennethreitz/httpbin จากนั้นใช้ http://localhost:8080/get

ทางเลือกอื่นสำหรับ httpbin

httpbin ทำสิ่งหนึ่งได้ดี แต่ไม่ใช่ทางเลือกเดียว และไม่ใช่แพลตฟอร์มการทดสอบที่สมบูรณ์ นี่คือทางเลือกอื่นๆ ที่ตรงไปตรงมาขึ้นอยู่กับสิ่งที่คุณต้องการ

Postman Echo. บริการ echo แบบโฮสต์ที่คล้ายคลึงกับ httpbin ซึ่งดำเนินการโดย Postman คุณเรียกใช้ https://postman-echo.com/get และจะได้รับคำขอของคุณสะท้อนกลับ มันรองรับ GET, POST, การรับรองความถูกต้อง และปลายทางยูทิลิตี้ต่างๆ ดู เอกสารของ Postman Echo สำหรับรายการทั้งหมด หาก httpbin.org หยุดทำงาน Echo เป็นทางเลือกที่ดีที่สามารถใช้งานแทนกันได้

Self-hosted httpbin. ดังที่แสดงด้านบน การรัน Docker image จะให้ปลายทางเดียวกันกับที่คุณควบคุมได้อย่างเต็มที่และไม่มีข้อจำกัดร่วมกัน นี่คือตัวเลือกที่ดีที่สุดเมื่อคุณต้องการพฤติกรรมของ httpbin ภายในเครือข่ายส่วนตัวหรืองาน CI

Mock services. httpbin จะสะท้อนคำขอของคุณกลับไป แต่ไม่ได้คืนข้อมูลโดเมนที่สมจริง เมื่อคุณต้องการการตอบสนองที่สร้างขึ้นมาปลอมแต่มีโครงสร้าง (เช่น รายชื่อผู้ใช้, ออบเจกต์คำสั่งซื้อ, ผลลัพธ์ที่มีการแบ่งหน้า) ให้ใช้ mock server แทน Apidog มีฟังก์ชัน smart mocking ในตัวที่สร้างการตอบสนองที่สมจริงจาก schema ของคุณ เพื่อให้ส่วนหน้าสามารถพัฒนาต่อกับปลายทางได้ก่อนที่ backend จะถูกสร้างขึ้น

Apidog ในฐานะ client และเลเยอร์การทดสอบ httpbin เป็นเป้าหมายที่คุณส่งคำขอไป Apidog เป็นเครื่องมือที่คุณใช้ส่งคำขอเหล่านั้น เป็น client API และแพลตฟอร์มการทดสอบแบบเต็มรูปแบบ: ออกแบบปลายทาง, ส่งคำขอ, เขียนคำยืนยัน, เชื่อมโยงคำขอเข้าด้วยกันเป็น scenarios และรันใน CI คุณจะใช้ Apidog เพื่อเข้าถึง httpbin หรือใช้แทนที่เมื่อความต้องการของคุณเกินกว่าการสะท้อนกลับง่ายๆ ทั้งสองอย่างไม่เท่ากัน; httpbin เป็นบริการขนาดเล็ก Apidog เป็นพื้นที่ทำงานที่อยู่รอบๆ เมื่อคุณพร้อมที่จะเปลี่ยนจากการเรียก curl ชั่วคราวไปสู่การทดสอบที่บันทึกไว้และทำซ้ำได้ Apidog ช่วยให้คุณสามารถนำเข้าคำขอที่มีอยู่ของคุณและเพิ่มคำยืนยัน สำหรับภาพรวมที่กว้างขึ้นของตัวเลือกที่ไม่ต้องติดตั้ง โปรดดู เครื่องมือทดสอบ API ออนไลน์ฟรี เหล่านี้

คำถามที่พบบ่อย

httpbin ใช้งานฟรีหรือไม่? ใช่ อินสแตนซ์สาธารณะของ httpbin.org ฟรีและไม่จำเป็นต้องมีบัญชี ซอร์สโค้ดเป็นโอเพนซอร์สภายใต้ใบอนุญาต ISC ดังนั้นคุณสามารถรันด้วยตัวเองได้โดยไม่มีค่าใช้จ่าย

httpbin ยังคงได้รับการดูแลอยู่หรือไม่? โค้ดเบสอยู่ใน postmanlabs/httpbin GitHub repo และได้รับการดูแลอย่างต่อเนื่อง แม้ว่าการบำรุงรักษาจะมีการหยุดชะงักเป็นครั้งคราว เนื่องจาก httpbin.org อาจมีความไม่เสถียร ทีมงานหลายแห่งจึงเลือกใช้สำเนา Docker ที่โฮสต์ด้วยตัวเองสำหรับงานสำคัญๆ

ฉันสามารถใช้ httpbin เพื่อทดสอบ webhooks ได้หรือไม่? ไม่เชิง httpbin จะสะท้อนคำขอที่คุณส่งไปให้ แต่มันจะไม่รับเหตุการณ์จากบุคคลที่สามและส่งต่อมายังเครื่องของคุณ สำหรับการนั้น ให้ใช้บริการ tunneling หรือ inspection เฉพาะทาง; ดูคู่มือนี้เกี่ยวกับการ ทดสอบ localhost APIs และ webhooks และข้อมูลเบื้องต้นเกี่ยวกับ วิธีการทำงานของ webhooks

httpbin กับ Postman Echo แตกต่างกันอย่างไร? พวกมันทำสิ่งเดียวกันเกือบทั้งหมด: สะท้อนคำขอ HTTP ของคุณกลับมาในรูปแบบ JSON httpbin เป็นบริการ Python และ Flask โอเพนซอร์สต้นฉบับ; Postman Echo เป็นบริการแบบโฮสต์โดย Postman เลือกอันที่ใช้งานได้และเข้าถึงได้

ฉันสามารถทดสอบการจัดการข้อผิดพลาดด้วย httpbin ได้หรือไม่? ใช่ ใช้ /status/{code} เพื่อบังคับรหัสสถานะใดๆ ก็ได้ เช่น /status/500 หรือ /status/429 และ /delay/{n} เพื่อจำลองการตอบสนองที่ช้า นี่คือวิธีที่สะอาดที่สุดในการทดสอบตรรกะการลองใหม่และการหมดเวลาของ client ของคุณ

สรุป

httpbin เป็นเครื่องมือขนาดเล็กที่คมชัด: ชี้ HTTP client ไปที่มันและดูคำขอของคุณสะท้อนกลับมา ใช้ /get และ /post เพื่อยืนยันสิ่งที่คุณส่ง ใช้ /status และ /delay เพื่อบังคับเส้นทางข้อผิดพลาด และใช้ Docker image เพื่อรันสำเนาส่วนตัวใน CI เมื่อคุณต้องการมากกว่าแค่การสะท้อนกลับ ให้มองหา mock ที่สมจริง, ชุดทดสอบที่บันทึกไว้ และคำยืนยัน

นั่นคือที่ที่แพลตฟอร์มเต็มรูปแบบให้ผลตอบแทน Apidog ให้คุณมี API client เพื่อเรียกใช้ httpbin, smart mocking เพื่อใช้แทน และการทดสอบอัตโนมัติเพื่อยืนยันพฤติกรรมที่คุณเพิ่งตรวจสอบ ดาวน์โหลด Apidog และเปลี่ยนการตรวจสอบ httpbin อย่างรวดเร็วของคุณให้เป็นการทดสอบที่ทำซ้ำได้

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API