Phần 2: So sánh 2 phương thức GET và POST - Series các phương thức giao tiếp HTTP - Movan.vn

Phần 2: So sánh 2 phương thức GET và POST – Series các phương thức giao tiếp HTTP

Trong phần trước của series các phương thức giao tiếp HTTP, chúng ta đã cùng nhau tìm hiểu về các phương thức cơ bản trong giao tiếp HTTP. Trong bài viết này, chúng ta cùng đi làm rõ về 2 phương thức được sử dụng rất nhiều trong giao thức HTTP đó là GET và POST.

Nói kỹ hơn về ưu nhược điểm của 2 phương thức:

Về độ bảo mật

Phương thức GET

Như bảng trên, GET không bảo mật bằng POST. Vậy tại sao? Vì dữ liệu được gửi bằng phương thức GET là hiển thị dạng clear text trên thanh URL, vì vậy rất dễ để đọc. Việc cực kỳ nguy hiểm hơn là bạn gửi username + password bằng GET, bạn sẽ public cho hacker biết về username và password, vì vậy không bao giờ được gửi mật khẩu hoặc các thông tin quan trọng, nhạy cảm bằng phương thức GET.

Phương thức POST

POST bảo mật hơn GET, vì sao? Thứ nhất, các kiểu dữ liệu mà phương thức POST có thể gửi đi là không giới hạn. Dữ liệu không public trên thanh URL như GET, các parameters cũng không được trình duyệt và lịch sử web ghi lại. VÌ vậy nó được dùng để gửi các dữ liệu quan trọng như mật khẩu!

Về tốc độ

Phương thức GET

Phương thức GET được lưu lại trên bộ nhớ cache nên việc xử lý tốc độ rất là nhanh nếu dữ liệu không nhất thiết phải gửi tới server.

Phương thức POST

Phương thức POST có tốc độ chậm hơn phương thức GET, vì phương thức POST truyền dữ liệu trực tiếp đến server, không hề sử dụng bộ nhớ cache.

Khái niệm GET và POST

Phương thức GET và POST là gì?

Các bạn có thể xem lại khái niệm trong Phần 1: Tổng quan về các phương thức giao tiếp HTTP – Series các phương thức giao tiếp HTTP.

Nói thêm một vài vấn đề về 2 phương thức, 2 phương thức này thường được sử dụng trong việc gửi dữ liệu giữa máy chủ (server) và máy khách (client).

  • GET – Yêu cầu dữ liệu từ một nguồn cụ thể
  • POST – Gửi dữ liệu được xử lý đến một tài nguyên được chỉ định
Ứng đụng tiêu biểu cho get và post

Phương thức POST vs GET

So sánh 2 phương thức POST và GET

Giờ chúng ta đi vào vấn đề chính, phân biệt và so sánh ưu nhược điểm của 2 phương thức trên. Việc phân biệt chúng rất quan trọng để tránh những lỗi chết người để hacker có thể khai thác.

GET POST
Nút BACK/Reload Vô hại Dữ liệu sẽ được gửi lại (trình duyệt sẽ cảnh bảo người dùng rằng dữ liệu sẽ được gửi lại)
Bookmarked Có thể bookmarked Không thể bookmarked
Cached Được lưu trữ lại Không được lưu trữ lại
Encoding type application/x-www-form-urlencoded application/x-www-form-urlencoded hoặc multipart/form-data. Sử dụng mã hoá nhiều phần cho dữ liệu nhị phân.
History Parameters được lưu lại trong lịch sử Parameters không được lưu lại trong lịch sử
Hạn chế về độ dài dữ liệu Bị giới hạn, do phương thức GET gửi dữ liệu bằng cách thêm vào thanh URL nên nó bị giới hạn (chiều dài lớn nhất của URL là 2048 ký tự) Không có giới hạn
Hạn chế về kiể dữ liệu Chỉ được sử dụng dữ liệu chuẩn ASCII Không bị giới hạn kiểu dữ liệu
Security GET không bảo mật bằng POST POST an toàn hơn GET
Visibility Dữ liệu được hiển thị trên thanh URL Dữ liệu không được hiển thị trên thanh URL

Kết luận

Qua việc so sánh 2 phương thức mình mong các bạn có thể hiểu rõ được 2 phương thức, phân biệt, và sử dụng từng phương thức sao cho phù hợp để tối ưu về tốc độ và độ bảo mật. Các bạn hãy đén xem phần tiếp theo của series!

Tài liệu tham khảo:

https://www.w3schools.com/tags/ref_httpmethods.asp

Đánh giá bài viết

About the Author Dương Ngô Nam Anh

by Movan
>