【问题标题】:Setting User-Agent correctly for a command line app?为命令行应用程序正确设置用户代理?
【发布时间】:2013-05-06 04:10:04
【问题描述】:

我构建了一个 nodejs command line utility 以使从命令行发布要点既简单又安全。它工作得很好,但我想知道为这样的事情设置用户代理的正确方法是什么。

现在它被设置为一个基本上任意的字符串:“nodejs/0.0.1 (node) gist command line tool v0.0.1”。

是否有关于设置用户代理的指南?有什么理由正确设置它吗?设置不正确有什么负面影响吗?我所做的只是发出一些http请求。

【问题讨论】:

  • 查看我对@Outsider 答案的评论,但也请包含您的项目的 URL 或只是您的项目名称。

标签: node.js http user-agent github-api


【解决方案1】:

我认为准则在 RFC 2068 (14.42) 中(和 RFC 1945 几乎相同)

作为 RFC 2068,用户代理应该像这样

User-Agent     = "User-Agent" ":" 1*( product | comment )

product         = token ["/" product-version]
token          = 1*<any CHAR except CTLs or tspecials>
product-version = token
comment        = "(" *( ctext | comment ) ")"
ctext          = <any TEXT excluding "(" and ")">

在我看来,如果您正确设置用户代理,现有的 Web 服务器或 Web 应用程序可以正确解析您的用户代理以进行日志记录等。

【讨论】:

  • 这完全正确。 GitHub 最近开始要求 API 的用户代理,以便他们可以联系看似长期滥用或误用 API 的人。几个月前,他们也开始解析它们以进行日志记录(据我所知)。
猜你喜欢
  • 1970-01-01
  • 2020-05-11
  • 2015-08-21
  • 1970-01-01
  • 2020-12-31
  • 2021-03-27
  • 1970-01-01
  • 2021-10-25
  • 1970-01-01
相关资源
最近更新 更多