本發(fā)明涉及一種針對客戶端環(huán)境的網頁代碼自適應方法,屬于網絡技術領域。
背景技術:
HTTP頭:指的是在超文本傳輸協(xié)議(HTTP)的請求和響應的消息中,消息頭部分的內容。
User-Agent:屬于HTTP頭中的組成部分,是一種向訪問網站提供客戶端所使用的瀏覽器信息、操作系統(tǒng)信息、硬件信息的標識。
當客戶端瀏覽器在訪問網站時,會向目標網站服務器發(fā)出HTTP請求信息;目標網站服務器收到瀏覽器發(fā)來的請求信息之后,會給瀏覽器返回HTTP響應信息;瀏覽器接收到了HTTP響應信息之后,會進行相應的解析(或者執(zhí)行),再以可視化的方式展現(xiàn)給用戶。
同一個網頁地址,在不同的設備上展示形式不一樣,例如:在手機上和電腦上訪問同一個網頁地址,網頁的排版是不一樣的,會根據(jù)分辨率進行更友好的展示。
同一個網頁地址,在不同的瀏覽器上渲染方式不一樣,例如:chrome瀏覽器支持Flash Player,safari瀏覽器不支持Flash Player,而是采用Video Player。
目前傳統(tǒng)的網頁代碼自適應方法是:客戶端瀏覽器向網站服務器發(fā)送HTTP請求,網站服務器將對應的響應信息返回給客戶端瀏覽器;客戶端瀏覽器根據(jù)自身的設備類型、瀏覽器類型、等信息,在響應數(shù)據(jù)中選擇適合自身情況的數(shù)據(jù)內容,進行解析,并以可視化的方式展現(xiàn)給用戶。如圖1所示。
在上述方法中,由于網站服務器返回的HTTP響應數(shù)據(jù)中,肯定有部分數(shù)據(jù)內容是瀏覽器解析不到的。例如,HTTP響應數(shù)據(jù)中包含只能在chrome瀏覽器上解析的內容和只能在safari瀏覽器上解析的內容,那么無論客戶端瀏覽器是chrome還是safari,必然會有部分內容是沒有解析到的。
因此,使用該方法帶來的缺點如下:
1)HTTP響應數(shù)據(jù)中有部分是無用的,卻在網絡中進行傳輸,從而增加了數(shù)據(jù)傳輸量,浪費了帶寬資源。
2)客戶端瀏覽器需要判斷哪些是需要解析的,哪些是無需解析的,從而增加了客戶端瀏覽器的解析工作量,減慢了網頁的加載速度。
技術實現(xiàn)要素:
針對現(xiàn)有技術中存在的技術問題,本發(fā)明的目的在于提供一種針對客戶端環(huán)境的網頁代碼自適應方法,本方法包括:客戶端瀏覽器在訪問網站時,向目標網站服務器發(fā)出HTTP請求信息;目標網站服務器收到瀏覽器發(fā)來的請求信息之后,根據(jù)HTTP頭內容判斷客戶端的環(huán)境信息(包括:瀏覽器信息、操作系統(tǒng)信息、硬件信息),生成與客戶端環(huán)境最適配的HTTP響應數(shù)據(jù),返回給客戶端瀏覽器;客戶端瀏覽器接收到HTTP響應信息之后,會進行相應的解析(或者執(zhí)行),并以可視化的方式展現(xiàn)給用戶。
本發(fā)明的技術方案為:
一種針對客戶端環(huán)境的網頁代碼自適應方法,其步驟為:
1)客戶端瀏覽器在訪問網站時,向網站服務器發(fā)出HTTP請求信息;
2)網站服務器根據(jù)HTTP請求信息中的HTTP頭內容判斷該客戶端瀏覽器所在客戶端的環(huán)境信息;
3)網站服務器生成與該客戶端的環(huán)境信息適配的HTTP響應數(shù)據(jù)返回給該客戶端瀏覽器;
4)該客戶端瀏覽器對該HTTP響應數(shù)據(jù)處理后以可視化的方式進行展現(xiàn)。
進一步的,網站服務器生成與該客戶端的環(huán)境信息適配的HTTP響應數(shù)據(jù)的方法為:首先在網站服務器建立一個環(huán)境適配關系表,存儲各客戶端環(huán)境和與之相適配的HTTP響應數(shù)據(jù)的對應關系;網站服務器根據(jù)客戶端的環(huán)境信息在該環(huán)境適配關系表中查詢與之適配的HTTP響應數(shù)據(jù),返回給該客戶端。
進一步的,所述環(huán)境信息包括:瀏覽器信息、操作系統(tǒng)信息、硬件設備信息。
進一步的,所述瀏覽器信息包括瀏覽器的類型、版本以及瀏覽器內核的類型和版本;所述操作系統(tǒng)信息包括操作系統(tǒng)的類型和版本;所述硬件設備信息包括硬件設備的類型、廠商和型號。
進一步的,所述HTTP請求信息包括請求行、若干請求頭部、空行和請求數(shù)據(jù)。
進一步的,所述請求行包括請求方法字段、URL字段和HTTP協(xié)議版本字段。
進一步的,每一所述請求頭部包括一對名稱、值。
進一步的,通過POST方法接收所述請求數(shù)據(jù)。
進一步的,通過客戶端的User-Agent值獲取該客戶端的所述環(huán)境信息。
與現(xiàn)有技術相比,本發(fā)明的積極效果為:
1)網站服務器生成與客戶端環(huán)境最適配的HTTP響應數(shù)據(jù),并返回給客戶端,這樣減少了數(shù)據(jù)傳輸量,節(jié)省了服務器帶寬資源;
2)客戶端瀏覽器無需判斷哪些代碼需要解析哪些代碼無需解析,這樣減少了客戶端瀏覽器的解析工作量,提高了客戶端瀏覽器的頁面加載速度,優(yōu)化了用戶在瀏覽頁面時候的用戶體驗。
附圖說明
圖1為傳統(tǒng)的網頁代碼自適應方法流程圖;
圖2為本發(fā)明網頁代碼自適應方法流程圖。
具體實施方式
下面結合附圖,對優(yōu)選實施例作詳細說明。應該強調的是下述說明僅僅是示例性的,而不是為了限制本發(fā)明的范圍及其應用。
該發(fā)明的流程圖如圖2:
步驟1:客戶端瀏覽器在訪問網站時,向網站服務器發(fā)出HTTP請求信息;
步驟2:網站服務器收到瀏覽器發(fā)來的請求信息之后,根據(jù)HTTP頭內容判斷客戶端的環(huán)境信息(包括:瀏覽器信息、操作系統(tǒng)信息、硬件設備信息);
步驟3:網站服務器針對客戶端環(huán)境,生成與客戶端環(huán)境最適配的HTTP響應數(shù)據(jù);
步驟4:網站服務器返回HTTP響應數(shù)據(jù)給客戶端瀏覽器;
步驟5:客戶端瀏覽器,接受HTTP響應數(shù)據(jù),進行相應的解析(或者執(zhí)行),并以可視化的方式展現(xiàn)給用戶。
詳細介紹步驟1:
HTTP請求信息中,包括請求行、請求頭部、空行和請求數(shù)據(jù)4個部分。
(1)請求行
請求行由請求方法字段、URL字段和HTTP協(xié)議版本字段3個字段組成,它們用空格分隔。例如:“GET/index.html HTTP/1.1”。
HTTP協(xié)議的請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。最常用的是GET方法和POST方法。當客戶端要從服務器中讀取文檔時,使用GET方法。當客戶端給服務器提供信息較多時可以使用POST方法。POST方法將請求參數(shù)封裝在HTTP請求數(shù)據(jù)中,以名稱/值的形式出現(xiàn),可以傳輸大量數(shù)據(jù)。
(2)請求頭部
請求頭部由名稱/值對組成,每行一對,名稱和值用英文冒號“:”分隔。請求頭部通知服務器有關于客戶端請求的信息,典型的請求頭有:
User-Agent:向訪問網站提供客戶端所使用的瀏覽器信息、操作系統(tǒng)信息、硬件設備信息
Accept:客戶端可識別的內容類型列表
Host:請求的主機名,允許多個域名同處一個IP地址,即虛擬主機
(3)空行
最后一個請求頭之后是一個空行,發(fā)送回車符和換行符,通知服務器以下不再有請求頭。對于一個完整的HTTP請求來說空行是必須的,否則服務器會認為本次請求的數(shù)據(jù)尚未完全發(fā)送到服務器,處于等待狀態(tài)。
(4)請求數(shù)據(jù)
請求數(shù)據(jù)不在GET方法中使用,而是在POST方法中使用。POST方法適用于需要客戶填寫表單的場合。
詳細介紹步驟2:
通過對HTTP請求頭中的User-Agent進行分析,可以判斷出客戶端的以下信息:
●瀏覽器的類型和版本
●瀏覽器內核的類型和版本
●操作系統(tǒng)的類型和版本
●硬件設備的類型、廠商和型號
例如:
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
●操作系統(tǒng)為Mac OS X,版本為10.11.6
●硬件設備為MAC電腦
●其他信息
詳細介紹步驟3:
利用客戶端瀏覽器的環(huán)境信息,網站服務器便可以生成與客戶端環(huán)境最適配的HTTP響應數(shù)據(jù)。
例如:
客戶端瀏覽器訪問的頁面是應用APP下載頁面,網站服務器根據(jù)User-Agent值判斷客戶端操作系統(tǒng)類型。若為iOS操作系統(tǒng),則返回給客戶端的HTTP響應數(shù)據(jù)為APP程序的iOS版本;若為Android操作系統(tǒng),則返回給客戶端的HTTP響應數(shù)據(jù)為APP程序的Android版本。
客戶端瀏覽器訪問的頁面是一個普通的網站頁面,網站服務器根據(jù)User-Agent值判斷客戶端的硬件設備類型。若為MAC電腦,則返回給客戶端的頁面代碼為適配電腦寬屏的排版頁面;若為iphone手機,則返回給客戶端的頁面代碼為適配iphone手機窄屏的排版頁面。
其中,網站服務器生成與客戶端環(huán)境最適配的HTTP響應數(shù)據(jù)的方法為:
網站服務器,建立一個“環(huán)境適配關系表”,存儲了客戶端環(huán)境和與之相適配的HTTP響應數(shù)據(jù)的對應關系。
客戶端瀏覽器訪問網站頁面,網站服務器根據(jù)User-Agent值獲取客戶端環(huán)境,隨后去“環(huán)境適配關系表”中進行查詢,查詢出該客戶端環(huán)境所適配的HTTP響應數(shù)據(jù),將與該客戶端環(huán)境不適配的HTTP響應數(shù)據(jù)丟棄,得到最終的HTTP響應請求,返回給客戶端。
例如:
客戶端瀏覽器訪問的頁面是應用APP下載頁面,網站服務器根據(jù)User-Agent值判斷客戶端操作系統(tǒng)類型:
●若為iOS操作系統(tǒng),在“環(huán)境適配關系表”中查詢出與iOS操作系統(tǒng)適配的HTTP響應數(shù)據(jù)(APP程序的iOS版本),將與Android操作系統(tǒng)適配的HTTP響應數(shù)據(jù)(APP程序的Android版本)丟棄,最后返回給客戶端的HTTP響應數(shù)據(jù)為APP程序的iOS版本;
●若為Android操作系統(tǒng),在“環(huán)境適配關系表”中查詢出與Android操作系統(tǒng)適配的HTTP響應數(shù)據(jù)(APP程序的Android版本),將與iOS操作系統(tǒng)適配的HTTP響應數(shù)據(jù)(APP程序的iOS版本)丟棄,最后返回給客戶端的HTTP響應數(shù)據(jù)為APP程序的Android版本。
客戶端瀏覽器訪問的頁面是一個普通的網站頁面,網站服務器根據(jù)User-Agent值判斷客戶端的硬件設備類型:
●若為MAC電腦,在“環(huán)境適配關系表”中查詢出與MAC電腦適配的HTTP響應數(shù)據(jù)(電腦寬屏排版),將與其他硬件設備類型相適配的HTTP響應數(shù)據(jù)丟棄,最后返回給客戶端的頁面代碼為適配MAC電腦寬屏的排版頁面;
●若為iphone手機,在“環(huán)境適配關系表”中查詢出與iphone手機適配的HTTP響應數(shù)據(jù)(手機窄屏排版),將與其他硬件設備類型相適配的HTTP響應數(shù)據(jù)丟棄,最后返回給客戶端的頁面代碼為適配iphone手機窄屏的排版頁面。
以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應該以權利要求的保護范圍為準。