通过http头信息定位用户所属地区国家


现在有些web应用具有多语言版本,方便不同国家的用户访问。有些做得好的系统会自动识别用户的国家来源,显示与其匹配的语言版本。
做的傻点的就需要用户手动选择地区。目前系统获知用户使用语言的途径方式有很多,如url,cookie,IP等,而如何实现让系统通过http请求头信息自动获知用户的国家或语言呢?

Web开发 http协议

takasu 12 years, 5 months ago

话说要通过HTTP来准确定位用户所在的国家或者所使用的语言,应该说很难,一个用户在中国可以使用中文,在国外也能使用中文,所以通过HTTP头信息只能获取用户浏览器所使用的语言,所以根据Accept-Language来判断只能算是初步的判断,并不准确。但通过Accept-Language也大致能判断用户所使用的语言了。

对于定位用户所在国家来说可能更难,这个只能通过获取HTTP的IP地址,然后和IP库进行比较,然后得到用户所在的国家,目前一般都是依据腾讯的纯真IP库,但是这个也不准确,因为其一IP会经常更新,则会导致IP数据库不准确,其二用户可能使用的代理造成了IP和所在国家不对应。

总之,没有一个很好的解决方案,一般都是根据Accept-Language来定位语言,然后在页面上再提供一个切换语言的链接,让用户当出现和自己所使用的语言不对应的时候可以切换语言。

当妈的把妹手 answered 12 years, 5 months ago

Your Answer