有些网站在通过智能手机或电脑访问时会自行排列布局。我想知道它是如何完成的(Javascript?获取浏览器数据?)。我真的很感激一些帮助,我正在学习JAVA,谢谢。
答案 0 :(得分:0)
Web浏览器的每个请求都有agent-string,其中包含必要的信息。请查看此页面以获取代理字符串的说明。 http://en.wikipedia.org/wiki/User_agent
答案 1 :(得分:0)
浏览器会向每个GET请求发送一个标头,其中包含有关自身的各种信息。有关示例,请参阅here,但您正在讨论的特定信息(浏览器类型)将在User-Agent
字段中发送。使用一些http客户端库,您可以控制发送的一些字段,以便假定其他类型的客户端的身份。
答案 2 :(得分:0)
这是通过阅读用户代理来完成的,通常使用javascript(在网站上)。
Javascript示例here。
答案 3 :(得分:0)
网站通过用户代理字符串识别浏览器。这是一个唯一标识符,用于告知站点浏览器类型和版本。
这可以通过navigator.userAgent
在javascript中检测到
它还作为标题字段
示例:强>
User-Agent:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 536.5(KHTML,与Gecko一样)Chrome / 19.0.1084.56 Safari / 536.5
获取此功能的 Java Servlet代码将是(More Info Here):
public final void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String agent = req.getHeader("user-agent");
if (agent != null && agent.indexOf("MSIE") > -1) {
// Internet Explorer mode
} else {
// Non-Internet Explorer mode
}
}
强制性维基百科参考:
http://en.wikipedia.org/wiki/User_agent
用户代理字符串格式当前由第14.43节指定 RFC 2616(HTTP / 1.1)HTTP中User-Agent字符串的格式是 带有可选注释的产品令牌(关键字)列表。对于 例如,您的产品名为WikiBrowser,即您的用户代理 字符串可能是WikiBrowser / 1.0 Gecko / 1.0。 “最重要的” 产品组件首先列出。这个字符串的部分是 如下:
产品名称和版本(WikiBrowser / 1.0)布局引擎和 版本(壁虎/ 1.0)。在这种情况下,这表示布局引擎和 版。不幸的是,在浏览器大战期间,许多网络服务器都是 配置为仅发送需要高级功能的网页 被识别为某个版本的Mozilla的客户端。
因此,大多数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 会议服务知道软件是否已安装,哪个 意味着它可以为参加会议提供简化的体验。