05/10/2026 · VietTechies · Biên tập

Năm 2000, Roy Fielding đã đệ trình luận án tiến sĩ tại Đại học California, Irvine với tiêu đề "Architectural Styles and the Design of Network-based Software Architectures". Trước đó, ông từng là đồng tác giả của quy chuẩn giao thức HTTP/1.1 xuất bản vào năm 1999. Trong luận văn của mình, ông giới thiệu khái niệm Representational State Transfer, hay REST. Trái với giả định phổ biến của nhiều người, Fielding không tạo ra REST làm bản thiết kế để xây dựng các API web. Thay vào đó, theo trang Two Bit History, ông phát triển REST nhằm diễn đạt các nguyên lý cốt lõi đằng sau HTTP, qua đó ghi nhận cách những ràng buộc kiến trúc giúp duy trì khả năng mở rộng của hệ thống trên mạng internet mở.

Kiến trúc nền tảng cho mạng internet
Công trình nghiên cứu tiến sĩ của Fielding tập trung phân tích cách các ràng buộc về mạng quyết định hiệu năng phần mềm trong các hệ thống phân tán. Thay vì chỉ chú trọng vào những tính năng ứng dụng riêng lẻ, ông xem xét mô hình cấu trúc tổng thể cần thiết để đáp ứng lưu lượng truy cập web ở quy mô lớn. Trong luận văn, Fielding trình bày REST như một sự tổng hợp các nguyên lý đúc kết từ quá trình chuẩn hóa HTTP/1.1. Ông nhấn mạnh rằng một kiến trúc phần mềm phải được đánh giá qua mức độ phù hợp giữa các ràng buộc của nó với nhu cầu vận hành thực tế, đồng thời cảnh báo rằng việc áp dụng mô hình kiến trúc mà không hiểu rõ những sự đánh đổi đi kèm sẽ làm tổn hại đến hiệu quả mạng và sự ổn định của hệ thống.
Phòng chống xu hướng "thiết kế theo thuật ngữ thời thượng"
Trong quá trình thiết kế HTTP/1.1, Fielding đã vận dụng các ràng buộc kiến trúc để đánh giá những đề xuất mở rộng giao thức. Khi có ý kiến đề xuất thêm các phương thức gom nhóm yêu cầu MGET và MHEAD, Fielding đã bác bỏ vì việc gom nhóm này vi phạm các ràng buộc quan trọng về lưu bộ nhớ tạm (caching) và máy chủ ủy quyền (proxying). Ông chứng minh REST được tạo thành bằng cách xếp chồng các quy tắc cụ thể, đồng thời lưu ý rằng phong cách này về mặt kỹ thuật có thể mang tên Uniform-Layered-Code-on-Demand-Client-Cache-Stateless-Server. Trong luận văn, Fielding cảnh báo gay gắt về hiện tượng "thiết kế theo thuật ngữ thời thượng" (design-by-buzzword) và khuyên các kỹ sư không nên coi các phong cách phần mềm là giải pháp "viên đạn bạc", mà phải chọn những ràng buộc phù hợp đúng với bài toán cần giải quyết.
Cuộc phản kháng lại sự phức tạp của phần mềm doanh nghiệp
Vào giữa những năm 2000, các nhà phát triển phần mềm bắt đầu phản ứng lại giao thức Simple Object Access Protocol, tức SOAP. Giới kỹ sư coi SOAP là một giải pháp phần mềm doanh nghiệp cồng kềnh và bị gánh nặng bởi hàng loạt quy chuẩn XML phức tạp. Sự dịch chuyển này đạt đến bước ngoặt vào năm 2007, khi người sáng tạo ra Ruby on Rails là David Heinemeier Hansson quyết định loại bỏ hỗ trợ SOAP khỏi khung làm việc này và chỉ trích nó là phần mềm doanh nghiệp phức tạp thái quá. Các nhà phát triển sau khi từ bỏ SOAP đã chuyển sang áp dụng ngữ nghĩa HTTP tiêu chuẩn cho các dịch vụ web. Nhằm tạo thêm uy quyền học thuật cho các API web mang tính thực dụng, giới lập trình đã mượn thuật ngữ REST của Fielding, biến một lập luận bảo vệ giao thức mang tính lý thuyết thành khái niệm phổ quát cho các dịch vụ web dựa trên HTTP.
Siêu phương tiện, chuyển giao trạng thái và quy chuẩn hiện đại
Sự áp dụng rộng rãi này đã tạo ra một ranh giới rõ rệt giữa khuôn khổ lý thuyết của Fielding và cách thiết kế API hiện đại. Fielding định nghĩa sự chuyển giao trạng thái của REST xoay quanh khái niệm HATEOAS (Hypermedia as The Engine of Application State), trong đó máy khách chuyển đổi trạng thái một cách linh hoạt thông qua các liên kết siêu văn bản của tài nguyên. Mặc dù vậy, hầu hết các API web thương mại ngày nay đều bỏ qua HATEOAS nhưng vẫn giữ lại tên gọi REST. Theo Two Bit History, ý định ban đầu của Fielding là dùng REST để minh họa cách điều chỉnh các ràng buộc phần mềm sao cho phù hợp với yêu cầu của từng ứng dụng, nhưng ngành công nghiệp phần mềm lại biến thuật ngữ này thành một tiêu chuẩn chung cho cả dịch vụ web công khai lẫn nội bộ.
Từ bảo vệ giao thức đến quy chuẩn phần mềm hiện đại
Lập luận lý thuyết của Fielding về khả năng mở rộng của HTTP/1.1 sau đó đã được giới phát triển phần mềm trích dẫn rộng rãi, biến một bản thiết kế giao thức cụ thể thành thuật ngữ dùng chung cho toàn ngành. Ngày nay, các nhà phát triển web thường xuyên dùng từ REST để mô tả các dịch vụ HTTP cơ bản dù hoàn toàn không có các cơ chế kiểm soát siêu phương tiện. Theo trang Two Bit History, việc hiểu được cách giới lập trình mượn một thuật ngữ học thuật để thoát khỏi sự cồng kềnh của phần mềm doanh nghiệp sẽ giúp giải thích lý do tại sao các API web hiện đại lại ưu tiên việc truyền tải dữ liệu HTTP thực tế hơn là tuân thủ các ràng buộc kiến trúc ban đầu của Fielding.
Ảnh đầu bài: minh họa do AI tạo, không phải ảnh tư liệu.
Nguồn: 0b10
0b10
Roy Fielding's Misappropriated REST Dissertation
