WebSockets - API

API - Định nghĩa

API, viết tắt của Application Program Interface, là một tập hợp các quy trình, giao thức và công cụ để xây dựng các ứng dụng phần mềm.

Một số tính năng quan trọng là -

  • API chỉ định cách các thành phần phần mềm tương tác và các API nên được sử dụng khi lập trình các thành phần giao diện người dùng đồ họa (GUI).

  • Một API tốt giúp phát triển một chương trình dễ dàng hơn bằng cách cung cấp tất cả các khối xây dựng.

  • REST, thường chạy qua HTTP thường được sử dụng trong các ứng dụng di động, trang web xã hội, công cụ kết hợp và quy trình kinh doanh tự động.

  • Phong cách REST nhấn mạnh rằng tương tác giữa khách hàng và dịch vụ được tăng cường bằng cách có một số hoạt động hạn chế (động từ).

  • Tính linh hoạt được cung cấp bằng cách chỉ định các nguồn lực; Số nhận dạng tài nguyên chung (URI) duy nhất của riêng họ.

  • REST tránh sự mơ hồ vì mỗi động từ có một ý nghĩa cụ thể (GET, POST, PUT và DELETE)

Ưu điểm của Web Socket

Web Socket giải quyết một số vấn đề với REST hoặc HTTP nói chung -

Hai chiều

HTTP là một giao thức đơn hướng mà máy khách luôn khởi tạo một yêu cầu. Máy chủ xử lý và trả về một phản hồi, sau đó máy khách sử dụng nó. Web Socket là một giao thức hai chiều, nơi không có các mẫu thông báo được xác định trước như yêu cầu / phản hồi. Máy khách hoặc máy chủ có thể gửi tin nhắn cho bên kia.

Song công đầy đủ

HTTP cho phép thông báo yêu cầu đi từ máy khách đến máy chủ và sau đó máy chủ sẽ gửi thông báo phản hồi đến máy khách. Tại một thời điểm nhất định, máy khách đang nói chuyện với máy chủ hoặc máy chủ đang nói chuyện với máy khách. Web Socket cho phép máy khách và máy chủ nói chuyện độc lập với nhau.

Kết nối TCP đơn

Thông thường, một kết nối TCP mới được khởi tạo cho một yêu cầu HTTP và kết thúc sau khi nhận được phản hồi. Một kết nối TCP mới cần được thiết lập cho một yêu cầu / phản hồi HTTP khác. Đối với Web Socket, kết nối HTTP được nâng cấp bằng cách sử dụng cơ chế nâng cấp HTTP tiêu chuẩn và máy khách và máy chủ giao tiếp qua cùng một kết nối TCP trong vòng đời của kết nối Web Socket.

Biểu đồ dưới đây cho thấy thời gian (tính bằng mili giây) được thực hiện để xử lý N thông báo với kích thước tải trọng không đổi.

Đây là dữ liệu thô cung cấp cho biểu đồ này -

Biểu đồ và bảng trên cho thấy chi phí REST tăng theo số lượng tin nhắn. Điều này đúng bởi vì nhiều kết nối TCP cần được bắt đầu và kết thúc và nhiều tiêu đề HTTP cần được gửi và nhận.

Cột cuối cùng đặc biệt hiển thị hệ số nhân cho khoảng thời gian để thực hiện một yêu cầu REST.

Biểu đồ thứ hai cho thấy thời gian cần thiết để xử lý một số lượng thư cố định bằng cách thay đổi kích thước tải trọng.

Đây là dữ liệu thô cung cấp cho biểu đồ này -

Biểu đồ này cho thấy rằng chi phí gia tăng của việc xử lý yêu cầu / phản hồi cho điểm cuối REST là tối thiểu và phần lớn thời gian được dành cho việc bắt đầu / kết thúc kết nối và tôn trọng ngữ nghĩa HTTP.

Phần kết luận

Web Socket là một giao thức cấp thấp. Mọi thứ, bao gồm mẫu thiết kế yêu cầu / phản hồi đơn giản, cách tạo / cập nhật / xóa tài nguyên cần, mã trạng thái, v.v. đều được xây dựng trên đó. Tất cả những điều này đều được xác định rõ ràng cho HTTP.

Web Socket là một giao thức trạng thái trong khi HTTP là một giao thức không trạng thái. Kết nối Web Socket có thể mở rộng theo chiều dọc trên một máy chủ trong khi HTTP có thể mở rộng theo chiều ngang. Có một số giải pháp độc quyền cho việc mở rộng quy mô theo chiều ngang của Web Socket, nhưng chúng không dựa trên các tiêu chuẩn. HTTP đi kèm với rất nhiều tiện ích khác như bộ nhớ đệm, định tuyến và ghép kênh. Tất cả những thứ này cần được xác định trên Web Socket.