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à RedirectPermanentgửi cho trình duyệt một HTTP 301mã trạng thái (Đã chuyển vĩnh viễn) trong khi Redirectsẽ gửi một HTTP 302mã trạng thái.
Sử dụng RedirectPermanentnế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 Redirectnế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-existtrang. 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-existtrong 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.
RedirectPermanentcó 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.
RedirectPermanentlà 301 và Redirectlà 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ó