Phân Biệt Sự Khác Nhau Giữa POST và PUT

Trong một bài viết trước đây chúng ta đã được tìm hiểu sự khác biệt giữa POST và GET. Ngoài GET và POST thì PUT cũng là một HTTP Method được sử dụng khá thường xuyên trong các ứng dụng web hướng theo kiến trúc RESTful API. Có nhiều ban không phân biệt được sự khác nhau giữa hai method này và một số nghĩ rằng chúng giống nhau trong khi đó một số thì chỉ sử dụng POST mà không biết sự tồn tại của PUT, phần lớn thì lại cho rằng POST chỉ có thể được dùng để tạo mới resource còn PUT thì để cập nhật .

Nên Sử Dụng POST Để Tạo Mới Resource

Chúng ta nên sử dụng HTTP POST method để tạo mới resource. Ví dụ để tạo mới một câu hỏi trên CodeHub.vn chúng ta sẽ thường sử dụng kết hợp URL và HTTP method như sau:

POST /questions HTTP/1.1
Host: www.codehub.vn/

Tuy nhiên POST cũng có thể được sử dụng để cập nhật một resource có sẵn. Ví dụ để cập nhật một câu hỏi trên CodeHub.vn với ID là 101 ngoài cách sử dụng PUT như ở dưới đây thì bạn còn có thể sử dụng kết hợp URL và POST HTTP method như sau:

POST /questions/101 HTTP/1.1
Host: www.codehub.vn/

Mặc dù vậy thì cách sử dụng POST để cập nhật resource như trên ít được sử dụng.

Nên Sử Dụng PUT Để Cập Nhật Resource Có Sẵn

Chúng ta nên sử dụng HTTP PUT method để tạo mới resource. Ví dụ để cập nhật một câu hỏi trên CodeHub.vn với ID là 101 chúng ta sẽ thường sử dụng kết hợp URL và HTTP method như sau:

PUT /questions/101 HTTP/1.1
Host: www.codehub.vn/

PUT cũng có thể được sử dụng để tạo mới một resource. Ví dụ để tạo mới một câu hỏi trên CodeHub.vn thì ngoài cách sử dụng POST method như đã tìm hiểu ở trên thì bạn có thể sử dụng kết hợp URL và PUT HTTP method như sau:

PUT /questions/new HTTP/1.1
Host: www.codehub.vn/

Mặc dù vậy thì cách sử dụng POST để cập nhật resource như trên ít được sử dụng.

Kết Luận

Mặc dù bạn có thể không cần phải tuân theo RESTful API hoặc sử dụng các HTTP method tuỳ ý theo các cách khác nhau tuy nhiên sử dụng một tiêu chuẩn thống nhất sẽ giúp bạn dễ dàng quản lý thay đổi cũng như mở rộng ứng dụng. Ngoài ra khi có các developer mới tham gia vào dự án họ sẽ có thể dễ dàng nắm bắt được cách dự án được phát triển như thế nào.

HTTP Lập Trình Web
Thêm Bình Luận: