我有一个面试的问题。 你能告诉我服务器如何知道我用于特定网站的标签或浏览器吗?
答案 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位加密。