目录搜索
GuidesAccess control CORSAuthenticationBrowser detection using the user agentCachingCaching FAQCompressionConditional requestsConnection management in HTTP 1.xContent negotiationContent negotiation: List of default Accept valuesCookiesCSPMessagesOverviewProtocol upgrade mechanismProxy servers and tunnelingProxy servers and tunneling: Proxy Auto-Configuration (PAC) filePublic Key PinningRange requestsRedirectionsResources and specificationsResources and URIsResponse codesServer-Side Access ControlSessionGuides: BasicsBasics of HTTPChoosing between www and non-www URLsData URIsEvolution of HTTPIdentifying resources on the WebMIME TypesMIME types: Complete list of MIME typesCSPContent-Security-PolicyContent-Security-Policy-Report-OnlyCSP: base-uriCSP: block-all-mixed-contentCSP: child-srcCSP: connect-srcCSP: default-srcCSP: font-srcCSP: form-actionCSP: frame-ancestorsCSP: frame-srcCSP: img-srcCSP: manifest-srcCSP: media-srcCSP: object-srcCSP: plugin-typesCSP: referrerCSP: report-uriCSP: require-sri-forCSP: sandboxCSP: script-srcCSP: style-srcCSP: upgrade-insecure-requestsCSP: worker-srcHeadersAcceptAccept-CharsetAccept-EncodingAccept-LanguageAccept-RangesAccess-Control-Allow-CredentialsAccess-Control-Allow-HeadersAccess-Control-Allow-MethodsAccess-Control-Allow-OriginAccess-Control-Expose-HeadersAccess-Control-Max-AgeAccess-Control-Request-HeadersAccess-Control-Request-MethodAgeAllowAuthorizationCache-ControlConnectionContent-DispositionContent-EncodingContent-LanguageContent-LengthContent-LocationContent-RangeContent-TypeCookieCookie2DateDNTETagExpectExpiresForwardedFromHeadersHostIf-MatchIf-Modified-SinceIf-None-MatchIf-RangeIf-Unmodified-SinceKeep-AliveLarge-AllocationLast-ModifiedLocationOriginPragmaProxy-AuthenticateProxy-AuthorizationPublic-Key-PinsPublic-Key-Pins-Report-OnlyRangeRefererReferrer-PolicyRetry-AfterServerSet-CookieSet-Cookie2SourceMapStrict-Transport-SecurityTETkTrailerTransfer-EncodingUpgrade-Insecure-RequestsUser-AgentUser-Agent: FirefoxVaryViaWarningWWW-AuthenticateX-Content-Type-OptionsX-DNS-Prefetch-ControlX-Forwarded-ForX-Forwarded-HostX-Forwarded-ProtoX-Frame-OptionsX-XSS-ProtectionMethodsCONNECTDELETEGETHEADMethodsOPTIONSPATCHPOSTPUTStatus100 Continue101 Switching Protocols200 OK201 Created202 Accepted203 Non-Authoritative Information204 No Content205 Reset Content206 Partial Content300 Multiple Choices301 Moved Permanently302 Found303 See Other304 Not Modified307 Temporary Redirect308 Permanent Redirect400 Bad Request401 Unauthorized403 Forbidden404 Not Found405 Method Not Allowed406 Not Acceptable407 Proxy Authentication Required408 Request Timeout409 Conflict410 Gone411 Length Required412 Precondition Failed413 Payload Too Large414 URI Too Long415 Unsupported Media Type416 Range Not Satisfiable417 Expectation Failed426 Upgrade Required428 Precondition Required429 Too Many Requests431 Request Header Fields Too Large451 Unavailable For Legal Reasons500 Internal Server Error501 Not Implemented502 Bad Gateway503 Service Unavailable504 Gateway Timeout505 HTTP Version Not Supported511 Network Authentication RequiredStatus
文字

用户代理请求头包含一个特征串,其允许网络协议对等体,以确定请求软件的用户代理的应用程序类型,操作系统,软件供应商或软件版本。

请阅读使用用户代理的浏览器检测,以及为什么向不同的浏览器提供不同的网页或服务通常是一个坏主意。

Header type

Request header

Forbidden header name

no

句法

User-Agent: <product> / <product-version> <comment>Common format for web browsers:User-Agent: Mozilla/<version> (<system-information>) <platform> (<platform-details>) <extensions>

指令

<product> 产品标识符 <product-version> 产品的版本号<comment> 例如,零个或多个包含子产品信息的注释。

Firefox UA 字符串

有关基于 Firefox 和 Gecko 的用户代理字符串的更多详细信息,请参阅 Firefox 用户代理字符串参考。Firefox 本身的 UA 字符串被分解为四个组件:

Mozilla / 5.0(platform ; rv:geckoversion)Gecko / geckotrail Firefox / firefoxversion

  • Mozilla / 5.0 是一款表示浏览器兼容 Mozilla 的通用标记,并且几乎适用于今天的所有浏览器。

  • 平台描述浏览器运行的本地平台(例如Windows,Mac,Linux 或 Android)以及它是否是手机。Firefox OS 手机只是说“手机”; 网络就是平台。请注意,平台可以由多个“;”分隔的令牌组成。请参阅下面的进一步细节和示例。

  • rv:geckoversion 表示 Gecko 的发布版本(例如“17.0”)。在最近的浏览器中,geckoversion firefoxversion 相同。

  • Gecko / geckotrail 表明浏览器基于 Gecko。

  • 在桌面上,geckotrail 是固定字符串“20100101”

  • Firefox / firefoxversion 表示浏览器是 Firefox,并提供版本(例如“ 17.0”)。

例子

Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0

Chrome UA 字符串

Chrome(或Chromium /基于闪烁的引擎)用户代理字符串与 Firefox 格式类似。为了兼容性,它添加了诸如 “KHTML,Gecko” 和 “Safari” 之类的字符串。

例子

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36

Opera UA 字符串

Opera 浏览器也基于 blink 引擎,这就是为什么它看起来几乎相同,但添加了 “OPR / <版本>”。

例子

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41

Safari UA 字符串

在这个例子中,用户代理字符串是移动 Safari 浏览器版本。它包含“移动”一词。

例子

Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1

Internet Explorer UA 字符串

例子

Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)

爬虫和机器人 UA 字符串

例子

Googlebot/2.1 (+http://www.google.com/bot.html)

产品规格

Specification

Title

RFC 7231, section 5.5.3: User-Agent

Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content

浏览器兼容性

Feature

Chrome

Edge

Firefox

Internet Explorer

Opera

Safari

Basic Support

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

Feature

Android

Chrome for Android

Edge mobile

Firefox for Android

IE mobile

Opera Android

iOS Safari

Basic Support

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

  • 用户代理检测,历史记录和清单

  • Firefox用户代理字符串参考

  • 使用用户代理进行浏览器检测

上一篇:下一篇: