Learning Hub
Phát triển Web

Xây dựng HTTP server nhỏ

6 phút đọc·Cập nhật 2026-09-09

HTTP server lắng nghe trên một port, parse request, route theo cặp method-path, chạy application logic rồi trả status, header và body. Hãy bắt đầu với một health route trước khi thêm framework hay database.

HTTP server lắng nghe trên một port, parse request, route theo cặp method-path, chạy application logic rồi trả status, header và body. Hãy bắt đầu với một health route trước khi thêm framework hay database.

Nhìn nhanh

Câu hỏi Câu trả lời thực tế
Dùng khi nào? Service nhỏ trả 200 cùng JSON cho GET /health, trả 404 cho path lạ và từ chối method không hỗ trợ bằng 405.
Cần làm gì? Tạo ba route bằng standard library hoặc framework tối giản của ngôn ngữ bạn chọn rồi gọi chúng bằng curl.
Biết là đúng bằng cách nào? curl hiển thị đúng status và JSON cho từng route; khi dừng process thì port được giải phóng sạch.
Lỗi hay gặp? Bind vào mọi network interface có thể làm lộ development server; dùng localhost cho đến khi chủ động bảo vệ remote access.
flowchart LR
  A[Câu hỏi] --> B[Xây dựng HTTP server nhỏ]
  B --> C[Ví dụ nhỏ]
  C --> D[Bằng chứng]

Điểm quan trọng của sơ đồ là không dừng ở định nghĩa: hãy nối khái niệm với một ví dụ nhỏ và bằng chứng có thể quan sát.

Ví dụ đã phân tích

Service nhỏ trả 200 cùng JSON cho GET /health, trả 404 cho path lạ và từ chối method không hỗ trợ bằng 405.

Trước khi làm, hãy viết dấu hiệu thành công. Sau đó chỉ thay đổi một yếu tố, quan sát kết quả và ghi lại assumption. Với Xây dựng HTTP server nhỏ, cách này giúp tách điều bạn biết khỏi điều bạn chỉ đang đoán.

Thực hành trong 20–30 phút

Mục tiêu: Tạo ba route bằng standard library hoặc framework tối giản của ngôn ngữ bạn chọn rồi gọi chúng bằng curl.

  1. Ghi lại trạng thái ban đầu và điều bạn dự đoán.
  2. Thực hiện phiên bản nhỏ nhất, không thêm công cụ chưa cần thiết.
  3. Thay đổi đúng một input hoặc constraint rồi chạy lại.
  4. Lưu command, screenshot, output hoặc checklist làm bằng chứng.

Kết quả mong đợi: curl hiển thị đúng status và JSON cho từng route; khi dừng process thì port được giải phóng sạch.

Sai ở đâu và sửa thế nào

Bind vào mọi network interface có thể làm lộ development server; dùng localhost cho đến khi chủ động bảo vệ remote access.

Khi kết quả khác dự đoán, đừng đổi nhiều thứ cùng lúc. Kiểm tra input, version, environment, quyền truy cập và log trước; sau đó lặp lại từ ví dụ nhỏ nhất.

Định nghĩa hoàn thành

  • Tôi giải thích được khái niệm bằng ngôn ngữ của mình.
  • Tôi đã hoàn thành ví dụ nhỏ và giữ bằng chứng.
  • Tôi biết một failure mode và cách kiểm tra nó.
  • Người khác có thể làm lại mà không phải đoán bước còn thiếu.

Đi sâu hơn

Mở resource hoặc repository đi kèm ở cuối trang khi bạn cần implementation đầy đủ. Hãy kiểm tra version hiện hành trước khi dùng command trong dự án thật.