Web服务器是否有标准方法可以确定用户在网页中的时区?
也许来自HTTP标头或user-agent字符串的一部分?
如何检测用户是否正在通过移动Web浏览器查看我的网站,以便我可以自动检测并显示我的网站的相应版本?
如果他们使用的是Internet Explorerv9之前的版本,我想将我们网站的用户反弹到错误页面.我们的时间和金钱都不值得支持IE pre-v9.所有其他非IE浏览器的用户都很好,不应该被退回.这是建议的代码:
if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE
var badBrowser=(
navigator.appVersion.indexOf("MSIE 9")==-1 && //v9 is ok
navigator.appVersion.indexOf("MSIE 1")==-1 //v10, 11, 12, etc. is fine too
);
if(badBrowser){
// navigate to error page
}
}
Run Code Online (Sandbox Code Playgroud)
这个代码会起作用吗?
关闭一些可能会出现的评论:
useragent字符串.我并不担心.pre-v9 IE浏览器都不支持.在整个站点中按功能检查功能将是一种浪费.IE v1(或> = 20)访问该网站不会将'badBrowser'设置为true,并且警告页面将无法正确显示.这是我们愿意承担的风险.IE 10,使得这种方法绝对无用.还有其他明显的问题需要注意吗?
我不知道我是否只是有某种盲点或什么,但我已多次阅读OAuth 2规范并仔细阅读邮件列表档案,我还没有找到一个很好的解释为什么隐含格兰特已经开发出用于获得访问令牌的流程.与授权代码授予相比,似乎只是放弃了客户端身份验证,没有非常令人信服的理由.这是如何"针对使用脚本语言在浏览器中实现的客户端进行优化"(引用规范)?
两个流程都是相同的(来源:http://tools.ietf.org/html/draft-ietf-oauth-v2-22):
这是流量分裂的地方.在这两种情况下,此时重定向URI都是由客户端托管的某个端点:
因此我的问题是:通过跳过客户端身份验证步骤获得了什么?
所有流行的浏览器的用户代理字符串,甚至是Internet Explorer,都以Mozilla/.为什么会这样?
如何使用JavaScript查找操作系统名称和操作系统版本?
当我自己向服务器发送许多请求时,我发现在IE中,如果我选择用户字符串的值为opera用户字符串,那就太棒了
User-Agent Opera/9.80 (Windows NT 6.1; U; en) Presto/2.2.15 Version/10.00
Run Code Online (Sandbox Code Playgroud)
但是,如果我在Internet Explorer中选择另一个浏览器,则首先将Mozilla 5.0放入用户字符串中.
当我从Chrome发送ajax请求时,我发现他们放了用户字符串
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.20 (KHTML, like Gecko) Chrome/11.0.672.2 Safari/534.20
Run Code Online (Sandbox Code Playgroud)
我发现Mozilla是一个与谷歌和微软没有任何关系的组织.也许它是两者的竞争对手.为什么MSFT和Google都将Mozilla放在他们的用户代理中?是否有任何理由将Mozilla放入连接字符串?
为什么chrome和IE都会在发送请求时将Mozilla放入用户字符串中?我不知道为什么,但有什么具体原因吗?
从我收集的信息来看,iPad正在使用iPhone OS,但屏幕分辨率与iPhone和iPod touch不同.许多网站可能不得不改变其用户代理检测以适应iPad.
那么,任何有权访问iPad或iPad SDK的人都能为我们提供用户代理字符串吗?
如何使用urllib2.urlopen上默认用户代理以外的用户代理下载网页?
user-agent ×10
browser ×3
html ×2
javascript ×2
http ×1
http-headers ×1
ipad ×1
oauth ×1
oauth-2.0 ×1
python ×1
timezone ×1
urllib2 ×1