Insights

API đã tiến hóa như thế nào: Từ SOAP đến WebSocket

Làm sao chúng ta đi từ những message XML cồng kềnh đến giao tiếp real-time hai chiều? Nhìn lại hành trình phát triển của kiến trúc API—từ SOAP, REST đến Webhook và WebSocket.

Duy Pham

Mobile App Developer

Jan 3, 20260 phút đọc196 lượt xem
API đã tiến hóa như thế nào: Từ SOAP đến WebSocket

Vấn đề khởi đầu tất cả

Cuối những năm 1990, Internet bắt đầu trở nên quan trọng với doanh nghiệp. Nhưng có một vấn đề lớn: các hệ thống không thể nói chuyện với nhau.

App viết bằng Java chạy trên UNIX không giao tiếp được với app Visual Basic trên Windows. Ngân hàng, bảo hiểm, ERP — mỗi bên một kiểu dữ liệu riêng. Tích hợp hệ thống lúc đó là ác mộng.

SOAP: Giải pháp đầu tiên (1998)

Microsoft và IBM giới thiệu SOAP để giải quyết chuyện này. Nó dùng XML để format message, HTTP/SMTP để truyền tải. Nhờ có WSDL, các hệ thống khác nhau cuối cùng cũng hiểu được nhau.

SOAP trở thành chuẩn vàng cho doanh nghiệp cần độ tin cậy, bảo mật và chuẩn hóa — nhất là ngân hàng và chính phủ.

REST: Đơn giản thắng (2000)

Web bùng nổ trong những năm 2000, SOAP bắt đầu lộ điểm yếu. Nó nặng quá. XML phức tạp. Browser và mobile app mới nổi không "nuốt" nổi.

Roy Fielding, một trong những người tạo ra HTTP, đề xuất REST trong luận án tiến sĩ của mình. Ý tưởng rất đơn giản: tận dụng những gì web đã có — HTTP methods (GET, POST, PUT, DELETE), URI cho tài nguyên, stateless để dễ scale.

YouTube, Twitter, Google API đều chuyển sang REST. Nó linh hoạt, nhanh, và developer thích dùng.

Webhook: Đừng hỏi, để tôi báo (2007)

REST hoạt động tốt với mô hình hỏi-đáp. Nhưng với các sự kiện real-time thì sao?

Tưởng tượng bạn phải liên tục hỏi server: "Có đơn hàng mới chưa? Có thanh toán mới chưa? Có commit mới chưa?" Tốn tài nguyên vô ích.

Jeff Lindsay giới thiệu Webhook năm 2007. Ý tưởng rất gọn: để server tự thông báo khi có sự kiện xảy ra.

GitHub là nền tảng lớn đầu tiên áp dụng Webhook năm 2008, tự động trigger build khi có commit mới. Stripe, Slack, PayPal, Twilio nhanh chóng làm theo.

Khi có sự kiện, server gửi HTTP POST đến endpoint bạn đã đăng ký, kèm chi tiết sự kiện. Không polling. Không tốn tài nguyên. Phản ứng tức thì.

Cách tiếp cận event-driven này trở thành nền tảng cho kiến trúc hiện đại.

WebSocket: Giao tiếp hai chiều thực sự (2008)

REST và Webhook giải quyết được nhiều bài toán. Nhưng app real-time như chat, sàn giao dịch, game online cần thứ gì đó khác — giao tiếp hai chiều liên tục.

Developer từng thử AJAX polling, long-polling. Cả hai đều nặng và tốn tài nguyên.

Ian Hickson từ Google, làm việc trong nhóm HTML5 (WHATWG), đề xuất WebSocket năm 2008. Cuối cùng, server có thể push data cho client bất cứ lúc nào, client cũng gửi ngược lại được — tất cả qua một kết nối duy nhất.

Rút ra điều gì?

Mỗi bước tiến hóa đều giải quyết một vấn đề thực tế:

  • SOAP → Các hệ thống cần hiểu nhau
  • REST → Cần thứ gì đó đơn giản, nhẹ hơn
  • Webhook → Đừng hỏi liên tục, hãy lắng nghe
  • WebSocket → Real-time cần giải pháp real-time

Hiểu lịch sử này giúp bạn chọn đúng công cụ cho dự án tiếp theo.

Thẻ

#API
#REST
#WebSocket
#Webhook
#Backend
#System Design
#Architecture

Bài Viết Có Ích?

Thêm bài viết về lập trình AI và mobile