+2

Phân biệt GET và POST

Get và Post


Thông thường khi chúng ta truy cập vào một Website nào đó thì trang Web đó sẽ sử dụng GET để thực hiện truy cập. Vì vậy chúng ta có thể coi GET là phương thức căn bản cho việc truy cập một Website nào đó. Mặt khác, POST là phương thức thường được sử dụng để gửi form.

Khi dùng GET, dù có truy cập từ bất kỳ đâu, truy cập như thế nào thì đều trả về kết quả hiển thị giống nhau.
Ngược lại, đối với POST thì kết quả trả về sẽ phản ánh lại đúng tình trạng của thời điểm truy cập.
Khi Reload lại màn hình gửi form của POST thì trang web sẽ luôn nhảy ra màn hình cảnh báo với nội dung đại loại như "Bạn có muốn gửi lại form không ?".

So sánh


Giống nhau:

Đều là phương thức của HTTP.
Được dùng khi truy cập vào trang web và gửi dữ liệu về server.

Khác nhau:


GET POST
- Luôn trả về kết quả giống nhau bất kể
thời điểm truy cập là lúc nào
- Kết quả trả về sẽ khác nhau tùy thuộc
vào thời điểm truy cập.
- Thông tin sẽ bị lộ sau dấu '?' trên đường dẫn URL
=> Kém an toàn
- Thông tin luôn được ẩn, không hiện lên URL
=> An toàn hơn GET
Tốc độ truy cập nhanh Tốc độ truy cập chậm hơn GET
Có thể cached và lưu Bookmark được Không cached và lưu Bookmark được
Chỉ gửi được data dưới dạng ký tự ASCII Gửi được data dưới nhiều dạng, kể cả dạng nhị phân

Minh họa


GET method

image.png

Dù truy cập vào bất kỳ thời gian nào hay từ nhiều browser khác nhau thì kết quả trả về của GET đều giống nhau (đều trả về kết quả A).


POST method

image.png

Dùng POST thì thời điểm truy cập khác nhau sẽ trả về kết quả khác nhau (có lúc Website sẽ trả về kết quả A, kết quả B hoặc kết quả C tùy thuộc vào thời điểm truy cập).

Nguồn tham khảo :

1. Sách Ruby on Rails 5 超入門, tác giả 掌田津耶乃, xuất bản 5/2017, trang 91-92

All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí