Tôi biết bạn không muốn đăng biểu mẫu bằng tên người dùng và mật khẩu mà bất kỳ ai cũng có thể sử dụng lịch sử để xem hoặc tình huống không thể thực hiện hành động lặp lại (làm mới trang = thêm mục vào giỏ hàng có thể không mong muốn). Vì vậy, tôi có một sự hiểu biết khi tôi có thể muốn sử dụng một trong khác. Nhưng tôi luôn có thể máy chủ chuyển hướng URL sau khi GET để giải quyết vấn đề giỏ hàng và có thể hầu hết các biểu mẫu của tôi sẽ hoạt động hoàn toàn tốt với GET.Tại sao tôi nên POST dữ liệu thay vì GET?
Tại sao tôi nên sử dụng POST over GET? Tôi không hiểu lợi ích của cái này qua cái kia. Tôi nhận thấy POST không thêm dữ liệu vào lịch sử/URL và sẽ cảnh báo bạn về việc làm mới trang, nhưng đó là hai sự khác biệt duy nhất tôi biết. Tại sao một nhà phát triển có thể tôi muốn sử dụng cái này qua cái kia?
Thêm các mục vào giỏ hàng với GET là một ý tưởng tồi vì yêu cầu GET không bao giờ được cho là có tác dụng phụ trên máy chủ. Có các chương trình tìm nạp trước như FasterFox và Trình tăng tốc Web của Google tải trước nội dung từ các liên kết trên một trang bằng cách tải xuống các trang trước. Nếu bạn không may mắn, họ có thể sẽ thêm các mục vào giỏ hàng khi người dùng của bạn chỉ đọc một trang sản phẩm. – Martin
@Martin. Có lý. Điều gì về ajax khôn ngoan? Có một sự khác biệt nếu tôi sử dụng GET hoặc POST? Không có gì có thể dự đoán dữ liệu tôi đang gửi nếu tôi phải chạy qua một vài hàm javascript làm cho yêu cầu. –
Trình tìm nạp trước không phải là vấn đề đối với các yêu cầu AJAX, nhưng tôi vẫn tin rằng đó là một ý tưởng hay để gắn vào ngữ nghĩa chính xác: GET reqs không được có tác dụng phụ trên máy chủ (tức là không tạo, xóa hoặc sửa đổi bất kỳ thứ gì). Nếu bạn chỉ đang tìm nạp dữ liệu (ví dụ: đối với hộp hoàn tất tự động) và dữ liệu được gửi đủ nhỏ để vừa với URL, thì GET sẽ hoạt động tốt. Không giống như các phản hồi POST, các phản hồi GET thậm chí có thể được lưu vào bộ nhớ cache, giúp cải thiện hiệu suất nhận thức của ứng dụng. – Martin