2008-11-19 4 views
0

Je souhaite diffuser un contenu différent à partir d'une seule URL selon que l'utilisateur est un navigateur ou un lecteur RSS (évitant ainsi une URL example.com/feed). Ainsi, www.example.com/posts renverra une page (X) HTML à un navigateur et un flux RSS à un lecteur de flux.Comment détecter qu'un lecteur de flux accède à ma page?

Quelle est la manière architecturellement la plus appropriée d'accomplir ceci?

PS Comment est-ce pour une question soft-ball ... :)

Répondre

5

Je ne suis pas sûr que ce soit possible dans toutes les situations. Considérons un utilisateur qui utilise le lecteur RSS de Safari, en supposant qu'il utilise la même chaîne d'identifiant de navigateur lors du téléchargement d'un flux RSS, comment distingueriez-vous les deux modes?

Je voudrais vraiment reconsidérer cette approche, il n'y a rien de mal avec une URL de flux séparé.

2

Permettez-moi de vous présenter l'User-Agent HTTP header. Il contiendra une chaîne d'identification pour le client accédant à votre page. Il peut être truqué mais vous ne pouvez pas être sûr à 100% s'il s'agit d'un lecteur RSS ou d'un navigateur.

En outre, les lecteurs RSS peuvent envoyer des en-têtes Accept pour les types de contenu rss, que vous pouvez utiliser pour implémenter content negotiation (MultiViews dans Apache).

Mais comme il n'y a pas de méthode sûre, mieux vaut ne pas utiliser le format HTML plus souvent que RSS, ou mieux encore, faire comme tout le monde et fournir un flux différent pour RSS.

Questions connexes