Sự khác biệt giữa Redirect()
và RedirectPermanent()
. Tôi đã đọc một số bài báo, nhưng tôi không hiểu khi nào chúng ta phải sử dụng Redirect()
và RedirectPermanent()
. Bạn có thể hiển thị một phần của ví dụ.
Câu trả lời:
Sự khác biệt cơ bản giữa cả hai là RedirectPermanent
gửi cho trình duyệt một HTTP 301
mã trạng thái (Đã chuyển vĩnh viễn) trong khi Redirect
sẽ gửi một HTTP 302
mã trạng thái.
Sử dụng RedirectPermanent
nếu tài nguyên đã được di chuyển vĩnh viễn và sẽ không thể truy cập được ở vị trí trước đó nữa. Hầu hết các trình duyệt sẽ lưu vào bộ nhớ cache phản hồi này và thực hiện chuyển hướng tự động mà không yêu cầu lại tài nguyên ban đầu.
Sử dụng Redirect
nếu tài nguyên có thể có sẵn ở cùng một vị trí (URL) trong tương lai.
Thí dụ
Giả sử rằng bạn có người dùng trong hệ thống của mình. Bạn cũng có một tùy chọn để xóa người dùng hiện có. Trang web của bạn có một tài nguyên /user/{userid}
hiển thị thông tin chi tiết của một người dùng nhất định. Nếu người dùng đã bị xóa, bạn phải chuyển hướng đến /user/does-not-exist
trang. Trong trường hợp này:
Nếu người dùng sẽ không bao giờ được khôi phục nữa, bạn nên sử dụng RedirectPermanent
để trình duyệt có thể truy cập trực tiếp /user/does-not-exist
trong các yêu cầu tiếp theo ngay cả khi URL trỏ đến /user/{userid}
.
Nếu người dùng có thể được khôi phục trong tương lai, bạn nên sử dụng một phiên bản thường xuyên Redirect
.
RedirectPermanent
có thể gây khó chịu trong khi gỡ lỗi vì lần thứ hai bạn nhấp vào, hành động của bộ điều khiển sẽ bị bỏ qua và không đạt được điểm ngắt trong chức năng ban đầu nếu nó chuyển hướng sang nơi khác. Đó là trừ khi bạn làm trống bộ nhớ cache của mình trước mỗi lần nhấp.
RedirectPermanent
là 301 và Redirect
là mã trạng thái 302
Họ gửi các mã phản hồi khác nhau đến trình duyệt. 301 là chuyển hướng vĩnh viễn, 302 là chuyển hướng tạm thời. Hiệu quả cuối cùng là giống nhau, nhưng nếu khách hàng muốn lập chỉ mục các liên kết (ứng dụng khách phổ biến nhất làm điều này sẽ là các công cụ tìm kiếm) thì chuyển hướng vĩnh viễn yêu cầu khách hàng cập nhật hồ sơ của mình để bỏ qua liên kết cũ và bắt đầu sử dụng liên kết mới . Chuyển hướng tạm thời cho khách hàng biết rằng trang đang chuyển hướng ngay bây giờ, nhưng không được xóa liên kết cũ khỏi cơ sở dữ liệu lập chỉ mục của nó