Chào các bạn! Hôm nay mình xin giới thiệu với các bạn về các loại phương thức HTTP trong lập trình Spring.
Bạn có biết khi truy cập vào một trang web như Tiki để mua hàng, làm thế nào mà bạn có thể thấy được tất cả các mặt hàng đó? Hãy cùng mình khám phá về các phương thức HTTP và cách chúng hoạt động.
Các loại phương thức HTTP
Thông thường, khi client gửi yêu cầu lên server, có nhiều loại yêu cầu khác nhau. Đôi khi client yêu cầu danh sách sản phẩm, đôi khi là yêu cầu thêm mới hoặc xoá một sản phẩm. Tùy vào mong muốn của client mà chúng ta có nhiều loại phương thức hỗ trợ khác nhau.
Dưới đây là tổng hợp 9 loại phương thức HTTP được sử dụng nhiều trong lập trình:
- GET: được sử dụng để lấy thông tin từ server dựa trên URL đã cung cấp.
- HEAD: tương tự như GET nhưng response trả về chỉ có header mà không có body.
- POST: gửi thông tin tới server thông qua biểu mẫu HTTP, thường được sử dụng cho việc đăng ký.
- PUT: ghi đè tất cả thông tin của đối tượng với những gì được gửi lên.
- PATCH: ghi đè các thông tin được thay đổi của đối tượng.
- DELETE: xóa tài nguyên trên server.
- CONNECT: thiết lập một kết nối tới server theo URI.
- OPTIONS: mô tả các tùy chọn giao tiếp cho resource.
- TRACE: thực hiện một bài test loop-back theo đường dẫn đến resource.
An toàn và idempotent
Các phương thức HTTP cũng được phân loại dựa trên tính an toàn và tính idempotent của chúng.
Một phương thức được coi là an toàn khi nó không làm thay đổi trạng thái của server. Các phương thức an toàn chỉ bao gồm: GET, HEAD và OPTIONS.
Phương thức không an toàn bao gồm: PUT, DELETE, POST và PATCH. Chúng có thể thay đổi trạng thái của server, tạo mới, chỉnh sửa hoặc xóa thông tin.
Một phương thức được coi là idempotent khi có thể thực hiện n + 1 lần mà vẫn trả lại kết quả như ban đầu.
Điểm khác biệt giữa GET và POST
Phương thức GET thường được sử dụng để lấy thông tin. Khi bạn muốn lấy danh sách sản phẩm điện thoại trên trang Tiki.vn, bạn có thể sử dụng phương thức GET và hiển thị thông tin trên trình duyệt như sau: https://tiki.vn/iphone10 hoặc https://tiki.vn/samsungA51.
Với phương thức GET, các thông tin như "iphone10" và "samsungA51" không cần phải bảo mật cao, vì chúng chỉ được sử dụng để lấy thông tin về các sản phẩm tương ứng.
Trong khi đó, phương thức POST được sử dụng khi thông tin truyền lên server có tính bảo mật cao. Với phương thức này, các thông tin sẽ được giấu trong body và mã hóa, ngăn cản các phần tử trung gian ăn cắp nội dung.
Phương thức PUT và PATCH
Phương thức PUT thì idempotent, ngược lại, phương thức POST không phải. Nếu bạn gửi một yêu cầu POST với cùng nội dung hai lần, bạn sẽ nhận được thông báo lỗi. Tuy nhiên, với phương thức PUT, kết quả luôn như nhau.
Cụ thể:
- POST: tạo mới.
- PUT: ghi đè hoặc tạo mới một resource.
- PATCH: cập nhật một phần của resource.
Tổng kết
Tóm lại, khi làm việc với phương thức HTTP, chúng ta cần chọn phương thức phù hợp với hành động mà client mong muốn. Thông thường, chúng ta có thể sử dụng POST để tạo mới, update, và delete, nhưng không nên khuyến khích việc này. Thay vào đó, nên sử dụng GET để xem thông tin, PUT để cập nhật, và DELETE để xoá. Chỉ cần nắm vững các khái niệm này, chúng ta đã có thể sử dụng các phương thức HTTP một cách hiệu quả.
Hình ảnh chỉ mang tính chất minh họa
Cảm ơn các bạn đã đọc bài viết này! Hãy tiếp tục khám phá thêm các kiến thức mới trên kênh Youtube của chúng tôi và tham gia các khoá học lập trình MIỄN PHÍ tại đây.