9

Tôi đang tạo một hệ thống bảng thông báo và giờ tôi đang triển khai tính năng 'xóa chủ đề' cho quản trị viên. Nếu ai đó mở chủ đề bị xóa, máy chủ không thể tìm thấy chủ đề đó, vì vậy nó phải là 404. Mặt khác, chủ đề đã tồn tại đôi khi, vì vậy tôi phải sử dụng 410. Triển khai 410 sẽ yêu cầu một bảng mới có tên là deleted_topics và cần nhiều không gian hơn. Tuy nhiên, 410 tôi nghĩ là tốt hơn cho công cụ tìm kiếm. Bạn nghĩ sao? Tôi có nên sử dụng 404 hoặc 410 không?Tôi có nên sử dụng 404 Không tìm thấy hoặc 410 Cuốn cho hệ thống bảng thông báo, khi một chủ đề bị xóa không?

404 Không tìm thấy

Các máy chủ đã không tìm thấy bất cứ điều gì phù hợp với các yêu cầu-URI. Không có dấu hiệu nào được đưa ra cho dù tình trạng này là tạm thời hay vĩnh viễn. Mã trạng thái 410 (Gone) NÊN được sử dụng nếu máy chủ biết, thông qua một số cơ cấu cấu hình nội bộ, rằng một tài nguyên cũ là vĩnh viễn không có sẵn và không có địa chỉ chuyển tiếp. Mã trạng thái này thường được sử dụng khi máy chủ không muốn tiết lộ chính xác lý do yêu cầu bị từ chối hoặc khi không có phản hồi nào khác được áp dụng.

410 Đi

Tài nguyên yêu cầu không còn có sẵn tại máy chủ và không có địa chỉ chuyển tiếp được biết đến. Tình trạng này dự kiến ​​được coi là vĩnh viễn. Khách hàng có khả năng chỉnh sửa liên kết NÊN xóa các tham chiếu đến URI yêu cầu sau khi người dùng chấp thuận. Nếu máy chủ không biết, hoặc không có cơ sở để xác định, có hay không tình trạng là vĩnh viễn, mã trạng thái 404 (Không tìm thấy) NÊN được sử dụng để thay thế. Phản hồi này có thể lưu vào bộ nhớ cache trừ khi được chỉ định khác.

Phản hồi 410 chủ yếu nhằm hỗ trợ nhiệm vụ bảo trì web bằng cách thông báo cho người nhận rằng tài nguyên cố tình không có sẵn và chủ sở hữu máy chủ mong muốn các liên kết từ xa đến tài nguyên đó bị xóa. Sự kiện như vậy là phổ biến cho các dịch vụ quảng cáo giới hạn thời gian và các tài nguyên thuộc về cá nhân không còn hoạt động tại trang web của máy chủ nữa. Không nhất thiết phải đánh dấu tất cả các tài nguyên không có sẵn vĩnh viễn là "đã biến mất" hoặc giữ dấu trong bất kỳ khoảng thời gian nào - theo ý của chủ sở hữu máy chủ.

Cảm ơn,

Trả lời

9

Hiển thị 410 yêu cầu nỗ lực nhiều hơn một chút so với 404 vì bạn biết đó là 410 bạn cần duy trì ít nhất một "bóng ma" của trang cũ trong cơ sở dữ liệu của bạn. Nếu đây không phải là vấn đề với bạn, tôi sẽ xem 410 "tốt hơn" và "thân thiện hơn" vì nó trình bày thêm thông tin. Nếu bạn không muốn bị phức tạp với việc duy trì một nghĩa trang trong cơ sở dữ liệu của mình, thì dĩ nhiên 404 cũng có thể chấp nhận được.

Tôi không thích cách chuyển hướng của Alohci sang một trang khác. Kết quả cuối cùng trông giống như người dùng đã kết thúc trên trang "chủ đề mới đầu vào" (hoặc bất kỳ) nào một cách tình cờ. Điều này làm việc, nhưng tôi nghĩ rằng một giải pháp thích hợp hơn là tạo một trang tùy chỉnh 410 (hoặc trang 404, nếu bạn không muốn hỗ trợ 410) với thông tin cụ thể cho trường hợp này. I E. 410 của bạn không nên chỉ nói "đi", nó nên nói "bài đăng này đã bị xóa, đây là một liên kết đến các bài viết tương tự hoặc một liên kết để tạo một bài mới". "404" của bạn sẽ không có nhiều thông tin có sẵn nhưng nó vẫn có thể cung cấp một tập hợp con các thông tin và liên kết đó.

Tôi đoán "trang 410 tùy chỉnh" xuất hiện gần như "chuyển hướng bằng 301" nhưng khác biệt quan trọng là người dùng rô bốt của trang web của bạn (trong đó có nhiều!) Sẽ nhận được trạng thái chính xác hơn, và biết thanh lọc liên kết cũ từ chỉ mục thu thập dữ liệu của họ – điều này cuối cùng sẽ lưu chúng và bạn một số lưu lượng truy cập không cần thiết.

+0

Phản hồi 410 là một cách hay để đưa ra lý do tại sao tài nguyên không còn khả dụng nữa. – Gumbo

+0

Tôi đã xóa câu trả lời của tôi vì nó rõ ràng không giúp ích, nhưng ... Tại sao một công cụ tìm kiếm sẽ không xóa trang "301 Đã di chuyển vĩnh viễn" khỏi chỉ mục của nó? – Alohci

+0

301 cho biết, "đây không phải là liên kết hoạt động nhưng nếu bạn làm theo chuyển hướng này, bạn sẽ nhận được một số loại kết quả nào đó". Một trình thu thập tham lam sẽ lấy bất cứ thứ gì mà nó có thể vuốt ve vuốt ve. 410 nói, "không có gì để thấy ở đây, biến mất và ngừng làm phiền!" Thuật toán SE là chủ đề của nhiều cuộc tranh luận nhưng nó hợp lý để giả định rằng thông điệp mạnh hơn sẽ có nhiều khả năng ngăn cản trình thu thập thông tin. –

4

Tôi nghĩ rằng cách chính xác để làm điều này là bằng cách gửi 410 Cuốn trong một thời gian và sau một vài tuần/tháng để chuyển sang 404 Không tìm thấy. Tất nhiên, nó là dành cho bạn để quyết định nếu đó là giá trị số lượng thời gian và công sức.

+0

Câu hỏi này được gắn thẻ SEO và đó không phải là ý tưởng hay từ quan điểm SEO. Xem câu trả lời của tôi. – allesklar

0

Không. Kể từ khi bạn gắn thẻ câu hỏi của bạn 'SEO' tôi giả sử bạn muốn câu trả lời SEO tốt nhất. Nếu có bất kỳ liên kết ngược nào (đến từ các trang bên ngoài) đến chủ đề đã xóa của bạn thì tất cả 'nước liên kết' sẽ bị mất với trạng thái 404 và 410.

Thay vào đó bạn chắc chắn nên tạo một số chuyển hướng 301 trỏ đến gốc của trang web, gốc của diễn đàn hoặc danh mục liên quan. Do đó, bạn sẽ bảo vệ nước liên kết và bạn quyết định những trang nào trong trang web của bạn sẽ được hưởng lợi nhiều nhất.

+15

Vì vậy, mục tiêu cung cấp thông tin chính xác và cập nhật là mâu thuẫn với mục tiêu tạo nhiều lượt xem trang. Điều này giải thích rất nhiều điều sai trái với Internet. * thở dài *. –

+1

@Carl. Có nó. Nhưng cho phép đối mặt với nó, các mã trạng thái HTTP bị chia nhỏ khủng khiếp trên internet. Lo lắng về sự tinh khiết của họ trước thực tiễn là vô nghĩa. – Alohci

+5

Đó chính xác là lý do tại sao tôi cố gắng ngăn cản mọi người chèn thêm nhiều chỗ vỡ vào lưới. Chân lý là tốt, dối trá là xấu; nó đơn giản mà. –