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

From Wikimedia Foundation Governance Wiki
Content deleted Content added
Created page with "提供被拉黑的User-Agent(例如任何以“lwp”開頭的User-Agent字符串)的客戶代理可能會遇到如下不太有用的錯誤訊息:"
No edit summary
Line 5: Line 5:
自2015年二月15日起,Wikimedia對所有請求要求一個'''HTTP [[w:User-Agent|User-Agent]] 請求頭'''。技術組成員做出此項執行要求,并且在技術郵件組中發佈并討論了這個決定<ref>[//lists.wikimedia.org/pipermail/wikitech-l/2010-February/subject.html#46777 The Wikitech-l February 2010 Archive by subject]</ref><ref>[http://www.gossamer-threads.com/lists/wiki/wikitech/189275 User-Agent: | Wikipedia | Wikitech]</ref>。對此的解釋是沒有在請求中包含User-Agent字符串的客戶端基本都是運行有錯誤的代碼,并且給服務器造成很多負擔,而沒有對這個維基項目做出貢獻。注意一些語言中包含的沒有説明作用的User-Agent默認值亦將會被Wikimedia網站屏蔽(或者其一部分,例如api.php頁面),例如Perl語言的libwww庫。
自2015年二月15日起,Wikimedia對所有請求要求一個'''HTTP [[w:User-Agent|User-Agent]] 請求頭'''。技術組成員做出此項執行要求,并且在技術郵件組中發佈并討論了這個決定<ref>[//lists.wikimedia.org/pipermail/wikitech-l/2010-February/subject.html#46777 The Wikitech-l February 2010 Archive by subject]</ref><ref>[http://www.gossamer-threads.com/lists/wiki/wikitech/189275 User-Agent: | Wikipedia | Wikitech]</ref>。對此的解釋是沒有在請求中包含User-Agent字符串的客戶端基本都是運行有錯誤的代碼,并且給服務器造成很多負擔,而沒有對這個維基項目做出貢獻。注意一些語言中包含的沒有説明作用的User-Agent默認值亦將會被Wikimedia網站屏蔽(或者其一部分,例如api.php頁面),例如Perl語言的libwww庫。


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


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

Revision as of 21:21, 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.

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.[5] 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.[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');