Server.Transfer vs Feedback.Redirect
Cả máy chủ và Phản hồi đều là đối tượng trong ASP.NET. Đối tượng máy chủ cung cấp các phương thức và thuộc tính cho các tác vụ khác nhau liên quan đến máy chủ. Truyền là một phương thức của đối tượng Máy chủ và nó sẽ gửi thông tin của trạng thái hiện tại sang tệp .asp khác để xử lý. Đối tượng phản hồi mô tả các phương thức và thuộc tính liên quan đến phản hồi của máy chủ. Chuyển hướng là một phương thức của đối tượng Phản hồi và nó sẽ gửi một thông điệp tới trình duyệt để nó kết nối với một URL khác. Mặc dù cả Server.Transfer và Feedback.Redirect đều có thể được sử dụng để chuyển người dùng từ trang này sang trang khác, họ khác nhau về cách họ thực sự thực hiện nhiệm vụ này.
Phản hồi là gì?
Chuyển hướng là một phương thức trong đối tượng Phản hồi. Khi phương thức Phản hồi được gọi, nó sẽ gửi mã HTTP 302 và URL của trang web được yêu cầu tới trình duyệt của người dùng. Mã HTTP 302 thông báo cho trình duyệt của người dùng rằng tài nguyên được yêu cầu nằm dưới một URL khác. Khi trình duyệt nhận được mã, nó sẽ mở tài nguyên ở vị trí mới. Trang web được yêu cầu có thể nằm trên cùng một máy chủ với trang chứa yêu cầu hoặc nó có thể nằm trong một số máy chủ khác. Khi yêu cầu một trang web cư trú trên cùng một máy chủ với trang hiện tại, phương thức Phản hồi có thể được sử dụng như sau:
Phản hồi.Redirect (Trang nextPage.html trực tiếp);
Khi yêu cầu một trang web cư trú trên một máy chủ khác, phương thức Phản hồi có thể được sử dụng như sau:
Phản hồi.Redirect (Hồi http://www.newServer.com/newPage.aspxật);
Server.Transfer là gì?
Như đã đề cập trước đó, Transfer là một phương thức của Đối tượng Máy chủ. Khi phương thức Chuyển được gọi, yêu cầu ban đầu được sửa đổi để chuyển sang một số trang khác trong cùng một máy chủ. Khi một trang mới được yêu cầu sử dụng Server.Transfer, URL hiển thị trong trình duyệt web của người dùng sẽ không thay đổi. Điều này là do việc chuyển tiền xảy ra ở phía máy chủ và trình duyệt không có bất kỳ kiến thức nào về việc chuyển tiền. Bằng cách sử dụng quá tải thứ hai cho Server.Transfer (đường dẫn chuỗi, bool reservedForm) và đặt tham số thứ hai là true, các biến mẫu và chuỗi truy vấn được đăng có thể được cung cấp cho trang thứ hai.
Sự khác biệt giữa Server.Transfer và Feedback.Redirect là gì?
Mặc dù cả Server.Transfer và Feedback.Redirect đều có thể được sử dụng để chuyển người dùng từ trang này sang trang khác, có một số khác biệt giữa hai phương thức. Bên cạnh sự khác biệt về cú pháp rõ ràng, Feedback.Redirect tạo một vòng cho máy chủ, trong khi Server.Transfer thay đổi trọng tâm của máy chủ web sang một trang web khác. Do đó, bằng cách sử dụng Server.Transfer, tài nguyên máy chủ có thể được bảo tồn. Mặt khác, Feedback.Redirect có thể được sử dụng để chuyển hướng người dùng đến một trang web trong một máy chủ khác trong khi Server.Transfer chỉ có thể được sử dụng để chuyển hướng người dùng đến các trang web trên cùng một máy chủ. Cũng bằng cách sử dụng Server.Transfer, các thuộc tính của trang trước có thể được truy cập bởi trang mới nhưng điều này là không thể với Feedback.Redirect. Ngoài ra, Feedback.Redirect thay đổi URL trong thanh địa chỉ của trình duyệt khi trang mới được truy cập nhưng khi sử dụng Server.Transfer URL gốc được giữ lại và nội dung của trang chỉ được thay thế. Vì vậy, người dùng không thể sử dụng nó để đánh dấu trang mới.