Là khách hàng có nghĩa vụ phải cư xử khác nhau? Làm sao?
Là khách hàng có nghĩa vụ phải cư xử khác nhau? Làm sao?
Câu trả lời:
Trạng thái 301 có nghĩa là tài nguyên (trang) được di chuyển vĩnh viễn đến một vị trí mới. Máy khách / trình duyệt không nên cố gắng yêu cầu vị trí ban đầu mà sử dụng vị trí mới kể từ bây giờ.
Trạng thái 302 có nghĩa là tài nguyên tạm thời được đặt ở một nơi khác và ứng dụng khách / trình duyệt sẽ tiếp tục yêu cầu url gốc.
Khi một con nhện công cụ tìm kiếm tìm thấy 301 mã trạng thái trong tiêu đề phản hồi của trang web, nó hiểu rằng trang web này không còn tồn tại, nó tìm kiếm tiêu đề vị trí trong phản hồi, chọn URL mới và thay thế URL được lập chỉ mục bằng URL mới và cũng chuyển pagerank .
Vì vậy, công cụ tìm kiếm sẽ làm mới tất cả các URL được lập chỉ mục không còn tồn tại (tìm thấy 301) với URL mới, điều này sẽ giữ lại lưu lượng truy cập trang web cũ của bạn, pagerank và chuyển hướng nó sang một cái mới (bạn sẽ không mất lưu lượng truy cập của trang web cũ).
Trình duyệt: nếu trình duyệt tìm thấy mã trạng thái 301 thì nó lưu trữ ánh xạ của URL cũ với URL mới, máy khách / trình duyệt sẽ không cố gắng yêu cầu vị trí ban đầu mà sử dụng vị trí mới kể từ bây giờ trừ khi bộ nhớ cache bị xóa.
Khi một con nhện công cụ tìm kiếm tìm thấy trạng thái 302 cho một trang web, nó sẽ chỉ chuyển hướng tạm thời đến vị trí mới và thu thập dữ liệu cả hai trang. URL trang web cũ vẫn tồn tại trong cơ sở dữ liệu của công cụ tìm kiếm và nó luôn cố gắng yêu cầu vị trí cũ và thu thập dữ liệu. Máy khách / trình duyệt vẫn sẽ cố gắng yêu cầu vị trí ban đầu.
Đọc thêm về cách triển khai nó trong asp.net c # và tác động đối với các công cụ tìm kiếm - http://www.dotnetbull.com/2013/08/301-permanent-vs-302-t tạm -status-code- aspnet -csharp-Thực hiện.html
Chủ yếu là 301 so với 302 rất quan trọng để lập chỉ mục trong các công cụ tìm kiếm, vì trình thu thập thông tin của họ đưa điều này vào tài khoản và chuyển PageRank khi sử dụng 301.
Xem câu trả lời của Peter Lee để biết thêm chi tiết.
301 là tài nguyên được yêu cầu đã được gán một URI vĩnh viễn mới và mọi tham chiếu trong tương lai tới tài nguyên này phải được thực hiện bằng cách sử dụng một trong các URI được trả về.
302 là tài nguyên được yêu cầu tạm thời nằm trong một URI khác.
Do việc chuyển hướng có thể bị thay đổi, thỉnh thoảng, khách hàng nên tiếp tục sử dụng URI yêu cầu cho các yêu cầu trong tương lai.
Phản hồi này chỉ có thể lưu trong bộ nhớ cache nếu được chỉ định bởi trường tiêu đề Cache-Control hoặc Hết hạn.
<?php header("location: http://example.com/new.php"); ?>
và tệp new.php - <?php echo 'I am new'; ?>
và đi đến liên kết . Ở đó sẽ chuyển hướng và hiển thị văn bản "Tôi là người mới". Sau đó thay thế mã trong old.php đến <?php echo 'I am old'; ?>
và cũng đi đến liên kết . Bạn sẽ thấy văn bản "Tôi già". Nếu bạn đã thực hiện chuyển hướng 301 trong old.php, bạn sẽ thấy văn bản "Tôi là người mới" ngay cả sau khi thay đổi mã của old.php.
webcomic.com/latest
và chuyển hướng đến webcomic.com/some-comic-title
với 301, trình duyệt sẽ luôn chuyển hướng đến "tiêu đề truyện tranh". Ngay cả khi truyện tranh tiếp theo đã được xuất bản và "mới nhất" bây giờ chuyển hướng đến "tiêu đề truyện tranh khác" ... Đây là nơi một 302 sẽ tốt hơn.
301 chuyển hướng được lưu trữ vô thời hạn (ít nhất là bởi một số trình duyệt).
Điều này có nghĩa là, nếu bạn thiết lập 301, hãy truy cập trang đó, bạn không chỉ được chuyển hướng mà còn chuyển hướng được lưu trữ.
Khi bạn truy cập lại trang đó, Trình duyệt * của bạn thậm chí không bận tâm đến việc yêu cầu URL đó, nó chỉ đi đến mục tiêu chuyển hướng được lưu trong bộ nhớ cache.
Cách duy nhất để hoàn tác 301 cho khách truy cập với chuyển hướng đó trong Cache, là chuyển hướng lại về URL ban đầu **. Trong trường hợp đó, Trình duyệt sẽ thông báo vòng lặp và cuối cùng thực sự yêu cầu URL đã nhập.
Rõ ràng, đó không phải là một lựa chọn nếu bạn quyết định 301 lên facebook hoặc bất kỳ tài nguyên nào khác mà bạn không hoàn toàn kiểm soát.
Thật không may, nhiều Nhà cung cấp dịch vụ lưu trữ cung cấp một tính năng trong Giao diện quản trị viên của họ được gọi đơn giản là "Chuyển hướng", thực hiện chuyển hướng 301. Nếu bạn đang sử dụng điều này để tạm thời chuyển hướng tên miền của bạn sang facebook như một trang sắp ra mắt, về cơ bản bạn đã bị lừa.
* ít nhất là Chrome và Firefox, theo trình duyệt bộ nhớ cache HTTP 301 trong bao lâu?. Chỉ cần dùng thử với Chrome 45. Chỉnh sửa: Safari 7.0.6 trên Mac cũng lưu trữ, khởi động lại trình duyệt không giúp ích được gì (Link nói rằng trên Safari 5 trên Windows, nó rất hữu ích.)
** Tôi đã thử javascript window.location = ''
, vì đó sẽ là giải pháp có thể được áp dụng trong hầu hết các trường hợp - nó không hoạt động. Nó dẫn đến một vòng lặp vô hạn không bị phát hiện. Tuy nhiên, php header('Location: new.url')
không phá vỡ vòng lặp
Tóm lại: chỉ sử dụng 301s nếu bạn chắc chắn rằng bạn sẽ không bao giờ sử dụng URL đó nữa. Thường không bao giờ trên thư mục gốc (example.com/)
Vấn đề chính với 301 là trình duyệt sẽ lưu trữ chuyển hướng ngay cả khi bạn tắt chuyển hướng từ cấp máy chủ.
Luôn luôn tốt hơn để sử dụng 302 nếu bạn đang bật chuyển hướng cho một cửa sổ bảo trì ngắn.