本发明涉及一种针对客户端环境的网页代码自适应方法,属于网络技术领域。
背景技术:
HTTP头:指的是在超文本传输协议(HTTP)的请求和响应的消息中,消息头部分的内容。
User-Agent:属于HTTP头中的组成部分,是一种向访问网站提供客户端所使用的浏览器信息、操作系统信息、硬件信息的标识。
当客户端浏览器在访问网站时,会向目标网站服务器发出HTTP请求信息;目标网站服务器收到浏览器发来的请求信息之后,会给浏览器返回HTTP响应信息;浏览器接收到了HTTP响应信息之后,会进行相应的解析(或者执行),再以可视化的方式展现给用户。
同一个网页地址,在不同的设备上展示形式不一样,例如:在手机上和电脑上访问同一个网页地址,网页的排版是不一样的,会根据分辨率进行更友好的展示。
同一个网页地址,在不同的浏览器上渲染方式不一样,例如:chrome浏览器支持Flash Player,safari浏览器不支持Flash Player,而是采用Video Player。
目前传统的网页代码自适应方法是:客户端浏览器向网站服务器发送HTTP请求,网站服务器将对应的响应信息返回给客户端浏览器;客户端浏览器根据自身的设备类型、浏览器类型、等信息,在响应数据中选择适合自身情况的数据内容,进行解析,并以可视化的方式展现给用户。如图1所示。
在上述方法中,由于网站服务器返回的HTTP响应数据中,肯定有部分数据内容是浏览器解析不到的。例如,HTTP响应数据中包含只能在chrome浏览器上解析的内容和只能在safari浏览器上解析的内容,那么无论客户端浏览器是chrome还是safari,必然会有部分内容是没有解析到的。
因此,使用该方法带来的缺点如下:
1)HTTP响应数据中有部分是无用的,却在网络中进行传输,从而增加了数据传输量,浪费了带宽资源。
2)客户端浏览器需要判断哪些是需要解析的,哪些是无需解析的,从而增加了客户端浏览器的解析工作量,减慢了网页的加载速度。
技术实现要素:
针对现有技术中存在的技术问题,本发明的目的在于提供一种针对客户端环境的网页代码自适应方法,本方法包括:客户端浏览器在访问网站时,向目标网站服务器发出HTTP请求信息;目标网站服务器收到浏览器发来的请求信息之后,根据HTTP头内容判断客户端的环境信息(包括:浏览器信息、操作系统信息、硬件信息),生成与客户端环境最适配的HTTP响应数据,返回给客户端浏览器;客户端浏览器接收到HTTP响应信息之后,会进行相应的解析(或者执行),并以可视化的方式展现给用户。
本发明的技术方案为:
一种针对客户端环境的网页代码自适应方法,其步骤为:
1)客户端浏览器在访问网站时,向网站服务器发出HTTP请求信息;
2)网站服务器根据HTTP请求信息中的HTTP头内容判断该客户端浏览器所在客户端的环境信息;
3)网站服务器生成与该客户端的环境信息适配的HTTP响应数据返回给该客户端浏览器;
4)该客户端浏览器对该HTTP响应数据处理后以可视化的方式进行展现。
进一步的,网站服务器生成与该客户端的环境信息适配的HTTP响应数据的方法为:首先在网站服务器建立一个环境适配关系表,存储各客户端环境和与之相适配的HTTP响应数据的对应关系;网站服务器根据客户端的环境信息在该环境适配关系表中查询与之适配的HTTP响应数据,返回给该客户端。
进一步的,所述环境信息包括:浏览器信息、操作系统信息、硬件设备信息。
进一步的,所述浏览器信息包括浏览器的类型、版本以及浏览器内核的类型和版本;所述操作系统信息包括操作系统的类型和版本;所述硬件设备信息包括硬件设备的类型、厂商和型号。
进一步的,所述HTTP请求信息包括请求行、若干请求头部、空行和请求数据。
进一步的,所述请求行包括请求方法字段、URL字段和HTTP协议版本字段。
进一步的,每一所述请求头部包括一对名称、值。
进一步的,通过POST方法接收所述请求数据。
进一步的,通过客户端的User-Agent值获取该客户端的所述环境信息。
与现有技术相比,本发明的积极效果为:
1)网站服务器生成与客户端环境最适配的HTTP响应数据,并返回给客户端,这样减少了数据传输量,节省了服务器带宽资源;
2)客户端浏览器无需判断哪些代码需要解析哪些代码无需解析,这样减少了客户端浏览器的解析工作量,提高了客户端浏览器的页面加载速度,优化了用户在浏览页面时候的用户体验。
附图说明
图1为传统的网页代码自适应方法流程图;
图2为本发明网页代码自适应方法流程图。
具体实施方式
下面结合附图,对优选实施例作详细说明。应该强调的是下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
该发明的流程图如图2:
步骤1:客户端浏览器在访问网站时,向网站服务器发出HTTP请求信息;
步骤2:网站服务器收到浏览器发来的请求信息之后,根据HTTP头内容判断客户端的环境信息(包括:浏览器信息、操作系统信息、硬件设备信息);
步骤3:网站服务器针对客户端环境,生成与客户端环境最适配的HTTP响应数据;
步骤4:网站服务器返回HTTP响应数据给客户端浏览器;
步骤5:客户端浏览器,接受HTTP响应数据,进行相应的解析(或者执行),并以可视化的方式展现给用户。
详细介绍步骤1:
HTTP请求信息中,包括请求行、请求头部、空行和请求数据4个部分。
(1)请求行
请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如:“GET/index.html HTTP/1.1”。
HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。最常用的是GET方法和POST方法。当客户端要从服务器中读取文档时,使用GET方法。当客户端给服务器提供信息较多时可以使用POST方法。POST方法将请求参数封装在HTTP请求数据中,以名称/值的形式出现,可以传输大量数据。
(2)请求头部
请求头部由名称/值对组成,每行一对,名称和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息,典型的请求头有:
User-Agent:向访问网站提供客户端所使用的浏览器信息、操作系统信息、硬件设备信息
Accept:客户端可识别的内容类型列表
Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机
(3)空行
最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。对于一个完整的HTTP请求来说空行是必须的,否则服务器会认为本次请求的数据尚未完全发送到服务器,处于等待状态。
(4)请求数据
请求数据不在GET方法中使用,而是在POST方法中使用。POST方法适用于需要客户填写表单的场合。
详细介绍步骤2:
通过对HTTP请求头中的User-Agent进行分析,可以判断出客户端的以下信息:
●浏览器的类型和版本
●浏览器内核的类型和版本
●操作系统的类型和版本
●硬件设备的类型、厂商和型号
例如:
User-Agent值为如下的字符串:
Mozilla/5.0(Macintosh;Intel Mac OS X 10_11_6)AppleWebKit/601.7.7(KHTML,like Gecko)Version/9.1.2Safari/601.7.7
针对该User-Agent值,对每一字符进行分析:
通过该User-Agent值,可以得到客户端浏览器的如下信息:
●浏览器为Safari,版本为9.1.2
●浏览器内核为WebKit,版本为601.7.7
●操作系统为Mac OS X,版本为10.11.6
●硬件设备为MAC电脑
●其他信息
详细介绍步骤3:
利用客户端浏览器的环境信息,网站服务器便可以生成与客户端环境最适配的HTTP响应数据。
例如:
客户端浏览器访问的页面是应用APP下载页面,网站服务器根据User-Agent值判断客户端操作系统类型。若为iOS操作系统,则返回给客户端的HTTP响应数据为APP程序的iOS版本;若为Android操作系统,则返回给客户端的HTTP响应数据为APP程序的Android版本。
客户端浏览器访问的页面是一个普通的网站页面,网站服务器根据User-Agent值判断客户端的硬件设备类型。若为MAC电脑,则返回给客户端的页面代码为适配电脑宽屏的排版页面;若为iphone手机,则返回给客户端的页面代码为适配iphone手机窄屏的排版页面。
其中,网站服务器生成与客户端环境最适配的HTTP响应数据的方法为:
网站服务器,建立一个“环境适配关系表”,存储了客户端环境和与之相适配的HTTP响应数据的对应关系。
客户端浏览器访问网站页面,网站服务器根据User-Agent值获取客户端环境,随后去“环境适配关系表”中进行查询,查询出该客户端环境所适配的HTTP响应数据,将与该客户端环境不适配的HTTP响应数据丢弃,得到最终的HTTP响应请求,返回给客户端。
例如:
客户端浏览器访问的页面是应用APP下载页面,网站服务器根据User-Agent值判断客户端操作系统类型:
●若为iOS操作系统,在“环境适配关系表”中查询出与iOS操作系统适配的HTTP响应数据(APP程序的iOS版本),将与Android操作系统适配的HTTP响应数据(APP程序的Android版本)丢弃,最后返回给客户端的HTTP响应数据为APP程序的iOS版本;
●若为Android操作系统,在“环境适配关系表”中查询出与Android操作系统适配的HTTP响应数据(APP程序的Android版本),将与iOS操作系统适配的HTTP响应数据(APP程序的iOS版本)丢弃,最后返回给客户端的HTTP响应数据为APP程序的Android版本。
客户端浏览器访问的页面是一个普通的网站页面,网站服务器根据User-Agent值判断客户端的硬件设备类型:
●若为MAC电脑,在“环境适配关系表”中查询出与MAC电脑适配的HTTP响应数据(电脑宽屏排版),将与其他硬件设备类型相适配的HTTP响应数据丢弃,最后返回给客户端的页面代码为适配MAC电脑宽屏的排版页面;
●若为iphone手机,在“环境适配关系表”中查询出与iphone手机适配的HTTP响应数据(手机窄屏排版),将与其他硬件设备类型相适配的HTTP响应数据丢弃,最后返回给客户端的页面代码为适配iphone手机窄屏的排版页面。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。