Policy:User-Agent policy/zh: Difference between revisions

From Wikimedia Foundation Governance Wiki
Content deleted Content added
No edit summary
Created page with "不要拷貝瀏覽器上的的客戶代理字符串,行爲像機械人但是具有瀏覽器的客戶代理的行爲將被視爲有害。<ref>[$ref4url User-Agent:]</ref>亦..."
Line 22: Line 22:
If you run an automated agent, please consider following the Internet-wide convention of including the string "bot" in the User-Agent string, in any combination of lowercase or uppercase letters. This is recognized by Wikimedia's systems, and used to classify traffic and provide more accurate statistics.
If you run an automated agent, please consider following the Internet-wide convention of including the string "bot" in the User-Agent string, in any combination of lowercase or uppercase letters. This is recognized by Wikimedia's systems, and used to classify traffic and provide more accurate statistics.


Do not copy a browser's user agent for your bot, as bot-like behavior with a browser's user agent will be assumed malicious.<ref>[//lists.wikimedia.org/pipermail/wikitech-l/2010-February/046783.html [Wikitech-l&#93; User-Agent:]</ref> Do not use generic agents such as "curl", "lwp", "Python-urllib", and so on. For large frameworks like pywikibot, there are so many users that just "pywikibot" is likely to be somewhat vague. Including detail about the specific task/script/etc would be a good idea, even if that detail is opaque to anyone besides the operator.<ref>{{cite web|url=http://lists.wikimedia.org/pipermail/mediawiki-api/2014-July/003308.html|title=Clarification on what is needed for "identifying the bot" in bot user-agent?|publisher=Mediawiki-api|author=Anomie|date=31 July 2014}}</ref>
不要拷貝瀏覽器上的的客戶代理字符串,行爲像機械人但是具有瀏覽器的客戶代理的行爲將被視爲有害。<ref>[//lists.wikimedia.org/pipermail/wikitech-l/2010-February/046783.html [Wikitech-l&#93; User-Agent:]</ref>亦不要使用通用代理,例如“curl”、“lwp”和“Python-urllib”等等。像pywikibot這樣的大型框架有很多用戶在用,僅僅使用“pywikibot”很可能比較模糊。在其中包含具體任務、脚本等細節通常是個好主意,即使這些信息對操作者外的其他人是模糊的。<ref>{{cite web|url=http://lists.wikimedia.org/pipermail/mediawiki-api/2014-July/003308.html|title=Clarification on what is needed for "identifying the bot" in bot user-agent?|publisher=Mediawiki-api|author=Anomie|date=31 July 2014}}</ref>


For more information, please refer to the [[mw:API:Quick start guide#Identifying your client|MediaWiki API Documentation]].<ref>As an example (among [[mw:API:Quick_start_guide#Identifying_your_client|other examples]]) of how to set a user-agent, in PHP, one [http://php.net/manual/en/function.curl-setopt.php might use] the following, if one's cURL handle is <code>$ch</code>:<source lang="php">curl_setopt($ch, CURLOPT_USERAGENT ,'CoolToolName/0.0 (https://example.org/CoolTool/; CoolTool@example.org) UsedBaseLibrary/0.0');</source></ref>
For more information, please refer to the [[mw:API:Quick start guide#Identifying your client|MediaWiki API Documentation]].<ref>As an example (among [[mw:API:Quick_start_guide#Identifying_your_client|other examples]]) of how to set a user-agent, in PHP, one [http://php.net/manual/en/function.curl-setopt.php might use] the following, if one's cURL handle is <code>$ch</code>:<source lang="php">curl_setopt($ch, CURLOPT_USERAGENT ,'CoolToolName/0.0 (https://example.org/CoolTool/; CoolTool@example.org) UsedBaseLibrary/0.0');</source></ref>

Revision as of 21:30, 16 December 2018

自2015年始,大體從技術上對用戶代理(user agent)不作强制要求,但是在某些特定情況下依然需要。[1]

自2015年二月15日起,Wikimedia對所有請求要求一個HTTP User-Agent 請求頭。技術組成員做出此項執行要求,并且在技術郵件組中發佈并討論了這個決定[2][3]。對此的解釋是沒有在請求中包含User-Agent字符串的客戶端基本都是運行有錯誤的代碼,并且給服務器造成很多負擔,而沒有對這個維基項目做出貢獻。注意一些語言中包含的沒有説明作用的User-Agent默認值亦將會被Wikimedia網站屏蔽(或者其一部分,例如api.php頁面),例如Perl語言的libwww庫。

不提供User-Agent請求頭的客戶代理(瀏覽器或脚本)現在可能會遇到如下所示之錯誤訊息:

Scripts should use an informative User-Agent string with contact information, or they may be IP-blocked without notice.

提供被拉黑的User-Agent(例如任何以“lwp”開頭的User-Agent字符串)的客戶代理可能會遇到如下不太有用的錯誤訊息:

Our servers are currently experiencing a technical problem. This is probably temporary and should be fixed soon. Please try again in a few minutes.

This change is most likely to affect scripts (bots) accessing Wikimedia websites such as Wikipedia automatically, via api.php or otherwise, and command line programs.[4] If you run a bot, please send a User-Agent header identifying the bot with an identifier that isn't going to be confused with many other bots, and supplying some way of contacting you (e.g. a userpage on the local wiki, a userpage on a related wiki using interwiki linking syntax, a URI for a relevant external website, or an email address), e.g.:

User-Agent: CoolToolName/0.0 (https://example.org/CoolTool/; CoolTool@example.org) UsedBaseLibrary/0.0

The generic format is <client name>/<version> (<contact information>) <library/framework name>/<version> [<library name>/<version> ...]. Parts that are not applicable can be omitted.

If you run an automated agent, please consider following the Internet-wide convention of including the string "bot" in the User-Agent string, in any combination of lowercase or uppercase letters. This is recognized by Wikimedia's systems, and used to classify traffic and provide more accurate statistics.

不要拷貝瀏覽器上的的客戶代理字符串,行爲像機械人但是具有瀏覽器的客戶代理的行爲將被視爲有害。[5]亦不要使用通用代理,例如“curl”、“lwp”和“Python-urllib”等等。像pywikibot這樣的大型框架有很多用戶在用,僅僅使用“pywikibot”很可能比較模糊。在其中包含具體任務、脚本等細節通常是個好主意,即使這些信息對操作者外的其他人是模糊的。[6]

For more information, please refer to the MediaWiki API Documentation.[7]

Web browsers generally send a User-Agent string automatically; if you encounter the above error, please refer to your browser's manual to find out how to set the User-Agent string. Note that some plugins or proxies for privacy enhancement may suppress this header. However, for anonymous surfing, it is recommended to send a generic User-Agent string, instead of suppressing it or sending an empty string. Note that other features are much more likely to identify you to a website — if you are interested in protecting your privacy, visit the Panopticlick project.

Browser-based applications written in Flash or JavaScript are typically forced to send the same User-Agent header as the browser that hosts them. This is not a violation of policy, however such applications are encouraged to include the Api-User-Agent header to supply an appropriate agent.

備註

  1. http://thread.gmane.org/gmane.science.linguistics.wikipedia.technical/83870/
  2. The Wikitech-l February 2010 Archive by subject
  3. User-Agent: | Wikipedia | Wikitech
  4. API:FAQ - MediaWiki
  5. [Wikitech-l] User-Agent:
  6. Anomie (31 July 2014). "Clarification on what is needed for "identifying the bot" in bot user-agent?". Mediawiki-api. 
  7. As an example (among other examples) of how to set a user-agent, in PHP, one might use the following, if one's cURL handle is $ch:
    curl_setopt($ch, CURLOPT_USERAGENT ,'CoolToolName/0.0 (https://example.org/CoolTool/; CoolTool@example.org) UsedBaseLibrary/0.0');