服务器如何知道我使用的是哪个浏览器或标签?

时间:2017-06-04 11:35:49

标签: web browser tabs

我有一个面试的问题。 你能告诉我服务器如何知道我用于特定网站的标签或浏览器吗?

2 个答案:

答案 0 :(得分:0)

当用户从浏览器发出请求时,会向服务器发送一个名为header的{​​{1}}。它看起来像这样:

User-Agent

它清楚地告诉你浏览器是mozilla,虽然有一些额外的信息是出于历史原因你不必担心。

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0 是一种元信息,用户看不到,但通过共享此类信息帮助服务器与客户端通信。因此,如果客户端使用的是过时的浏览器,则可以将不同的页面提供给不同的页面。

您无法知道客户端使用的是哪个标签。

答案 1 :(得分:0)

请参阅此Wikipedia article

  

在计算中,用户代理是软件(软件代理)   代表用户行事。该术语的一个常见用途是指网络   浏览器告诉网站有关浏览器和操作的信息   系统。这允许网站自定义内容   特定设备的功能,但也会引发隐私问题。

     

术语"用户代理"还有其他用途。例如,一封电子邮件   reader是邮件用户代理。在许多情况下,用户代理充当   客户端在网络协议中使用的通信   客户服务器分布式计算系统。特别是   超文本传输​​协议(HTTP)标识客户端软件   使用用户代理标头发起请求,即使是   客户端不是由用户操作的。会话启动协议   (SIP)协议(基于HTTP)遵循此用法。在SIP中,   术语用户代理是指通信会话的两个端点。

     

用户代理识别软件代理在网络中运行时   协议,它经常标识自己,它的应用程序类型,操作   系统,软件供应商或软件修订,通过提交   特征识别字符串到其操作对等体。在HTTP中,   SIP和NNTP协议,此标识在a中传输   标题字段User-Agent。机器人,例如网络爬虫,通常也是   包括URL和/或电子邮件地址,以便网站管理员可以联系   机器人的操作员。

     

在HTTP中使用在HTTP中,User-Agent字符串通常用于内容   协商,原始服务器选择合适的内容或   响应的操作参数。例如,User-Agent   web服务器可以使用字符串来选择基于的变体   特定版本的客户端软件的已知功能。该   内容定制的概念内置于RFC的HTTP标准中   1945年"为了定制响应以避免特定用户   代理人限制。“

     

User-Agent字符串是Web爬网程序可以使用的标准之一   被排除在使用网站访问网站的某些部分   机器人排除标准(robots.txt文件)。

     

与许多其他HTTP请求标头一样,中的信息也是如此   "用户代理"字符串有助于客户端的信息   发送到服务器,因为字符串可能与用户有很大不同   给用户。

     

人工操作的Web浏览器的格式User-Agent字符串格式为   目前由HTTP / 1.1语义和5.5.3节规定   内容。 HTTP中User-Agent字符串的格式是   带有可选注释的产品令牌(关键字)。例如,如果是   用户的产品被称为WikiBrowser,他们的用户代理字符串可能   是WikiBrowser / 1.0 Gecko / 1.0。最重要的"产品组件   首先列出。

     

此字符串的部分如下:

     

产品名称和版本(WikiBrowser / 1.0)布局引擎和版本   (Gecko / 1.0)在第一次浏览器大战期间,许多Web服务器都是   配置为仅发送需要高级功能的网页,   包括框架,被识别为某些版本的客户端   Mozilla的。其他浏览器被认为是较旧的产品,如   Mosaic,Cello或Samba将发送一个简单的HTML文档。

     

因此,大多数Web浏览器使用User-Agent字符串值作为   如下:

     

Mozilla / [版本]([系统和浏览器信息])[平台]   ([平台详情])[扩展]。例如,iPad上的Safari有   使用以下内容:

     

Mozilla / 5.0(iPad; U; CPU OS 3_2_1,如Mac OS X; en-us)   AppleWebKit / 531.21.10(KHTML,像Gecko)Mobile / 7B405组件   这个字符串如下:

     

Mozilla / 5.0:以前用于表示与...的兼容性   Mozilla渲染引擎。 (iPad; U; CPU OS 3_2_1,如Mac OS X;   en-us):运行浏览器的系统的详细信息。   AppleWebKit / 531.21.10:浏览器使用的平台。 (KHTML,就像   Gecko):浏览器平台细节。 Mobile / 7B405:这是由   浏览器指示可直接使用的特定增强功能   在浏览器中或通过第三方。这方面的一个例子是   Microsoft Live Meeting注册扩展以便Live   会议服务知道软件是否已安装,哪个   意味着它可以为加入会议提供简化的体验。   在迁移到Chromium代码库之前,Opera是最广泛的   使用了没有User-Agent字符串的Web浏览器   " Mozilla的" (而不是以" Opera"开头)。自2013年7月15日起,   Opera的用户代理字符串以" Mozilla / 5.0"开头。而且,为了避免   遇到遗留服务器规则,不再包含单词" Opera"   (而是使用字符串" OPR"来表示Opera版本。)

     

自动代理(机器人)的格式自动网络抓取工具可以   使用简化表格,其中重要字段是联系信息   遇到问题。按照惯例,“" bot"包括在内   代理人的姓名[需要引证]。例如:

     

Googlebot / 2.1(+ http://www.google.com/bot.html)自动代理商   我们希望遵循名为" robots.txt"。

的特殊文件中的规则      

用户代理欺骗各种Web浏览器产品的普及程度   在整个网络的历史中各不相同,这影响了整个网络   以某种方式设计网站有时是网站   旨在仅适用于特定浏览器,而不是   根据万维网联盟(W3C)的统一标准   或互联网工程任务组(IETF)。网站通常包括   代码检测浏览器版本以调整发送的页面设计   根据收到的用户代理字符串。这可能意味着   不太流行的浏览器不会发送复杂的内容(即使它们   也许能够正​​确处理它,或者,在极端情况下,拒绝   所有内容。因此,各种浏览器具有隐藏或欺骗的特征   他们的身份证明强制某些服务器端内容。对于   例如,Android浏览器将自己标识为Safari(其中包括)   事情)以帮助兼容。

     

其他HTTP客户端程序,如下载管理器和脱机   浏览器通常能够更改用户代理字符串。

     

垃圾邮件机器人和网络漫游者经常使用虚假的用户代理。

     

有时,Web开发人员一直很喜欢启动Viewable   使用任何浏览器活动,鼓励开发人员设计网页   这对任何浏览器都同样有效。

     

用户代理欺骗的结果可能是收集的统计信息   Web浏览器使用不准确。

     

用户代理嗅探主要文章:浏览器嗅探术语用户代理   嗅探是指网站显示不同内容的做法   与某个用户代理一起查看时。在互联网上,这将   导致在使用a浏览页面时显示不同的站点   特定浏览器。其中一个例子是Microsoft Exchange Server   2003年的Outlook Web Access功能。使用Internet Explorer查看时   与同一页面相比,显示更多或更新的功能   在任何其他浏览器中。用户代理嗅探现在被认为很差   实践,因为它鼓励特定于浏览器的设计和惩罚   具有无法识别的用户代理标识的新浏览器。代替,   W3C建议创建标准的HTML标记,允许   在尽可能多的浏览器中正确呈现,并进行测试   特定浏览器功能而不是特定的浏览器版本或   品牌。

     

专门针对手机的网站,如NTT   DoCoMo的I-Mode或Vodafone的沃达丰直播!门户网站,经常依赖   严重依赖用户代理嗅探,因为移动浏览器经常不同   彼此很大。移动浏览的许多发展都有   在过去的几年里,[什么时候?],而许多旧的手机   不拥有这些新技术仍然被大量使用。   因此,移动Web门户通常会产生完全不同的   标记代码取决于用于浏览它们的手机。这些   差异可以很小,例如,调整某些图像的大小以适应   较小的屏幕,或相当广泛的,例如,呈现页面   WML而不是XHTML。

     

加密强度表示法在美联航中创建的Web浏览器   以前的状态,如Netscape Navigator和Internet Explorer   使用字母U,I和N来指定加密强度   用户代理字符串。直到1996年,当时的美国政府   禁止使用长度超过40位的密钥进行加密,   供应商提供各种加密版本的浏览器版本   强项。 " U"代表" USA" (对于128位版本   加密),"我"代表"国际" - 浏览器有40位   加密,可以在世界任何地方使用 - 和" N"站立(德   事实上)"无" (没有加密)。解除出口后   限制,大多数供应商都支持256位加密。