Phân biệt GET và POST
This post hasn't been updated for 2 years
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
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
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-92All Rights Reserved