用外部代碼認(rèn)證來降低Web瀏覽開銷的制作方法
【專利摘要】用于使用嵌入到預(yù)處理代碼中的簽名/認(rèn)證來實(shí)現(xiàn)使用或重用預(yù)處理代碼以避免對在web頁面內(nèi)容內(nèi)執(zhí)行一些操作或執(zhí)行一些腳本的需求的方法、服務(wù)器和系統(tǒng)??稍趙eb頁面內(nèi)容中的可執(zhí)行腳本內(nèi)執(zhí)行一個(gè)或多個(gè)操作并且以可用于驗(yàn)證瀏覽器可跳過相應(yīng)操作的方式來對操作結(jié)果簽名。接收經(jīng)簽名的預(yù)處理代碼的瀏覽器可使用簽名驗(yàn)證過程來確定該瀏覽器是否能繞過執(zhí)行web頁面內(nèi)容中的相應(yīng)腳本或者執(zhí)行替換操作??捎呻x線工具預(yù)執(zhí)行各操作并且結(jié)果可由離線工具簽名并包括在web頁面內(nèi)容中。操作結(jié)果可連同簽名存儲在存儲器中,從而操作結(jié)果可在將來被重用。
【專利說明】用外部代碼認(rèn)證來降低Web瀏覽開銷
[0001] 相關(guān)申請
[0002] 本申請要求 2012 年 1 月 26 日提交的題為 "Reducing Web Browsing Overheads with External Code Certification (用外部代碼認(rèn)證來降低Web瀏覽開銷)"的美國臨時(shí) 申請No. 61/591141的權(quán)益,該臨時(shí)申請通過援引全部納入于此。
[0003] 背景
[0004] 盡管瀏覽器技術(shù)中有許多新近的進(jìn)步,但web瀏覽器一般仍舊缺少執(zhí)行復(fù)雜計(jì)算 密集型任務(wù)的能力。為了解決這一以及其他限制,一些web瀏覽器可將其任務(wù)/處理中的 一些或全部卸載至遠(yuǎn)程服務(wù)器。例如,一些web瀏覽器(例如,Opera? Mini)可被配置成 向服務(wù)器請求web頁面,該服務(wù)器在將這些web頁面發(fā)送給瀏覽器之前處理并將該web頁 面壓縮成圖像文件。在此類系統(tǒng)上,瀏覽器簡單地接收和呈現(xiàn)該圖像,依賴于服務(wù)器來執(zhí)行 與顯示圖像有關(guān)的幾乎全部處理/任務(wù)。
[0005] 其他web瀏覽器(例如,Amazon silk)可使用其中僅一些任務(wù)/處理被卸載至服 務(wù)器的拆分架構(gòu)。然而,這一拆分架構(gòu)一般要求使用預(yù)定義服務(wù)器和專有瀏覽器。此外,web 瀏覽器(無論是否專有)并非總是被通知已經(jīng)執(zhí)行的全部任務(wù),或者預(yù)處理結(jié)果是否是當(dāng) 前的(鑒于對內(nèi)容的新近更新/改變等)。沒有用于確保預(yù)處理代碼的有效性的機(jī)制,瀏覽 器不能確定該代碼是否已經(jīng)被高效編碼和/或能另行被信任以按呈現(xiàn)相關(guān)聯(lián)的頁面所要 求的那樣執(zhí)行。
[0006] 概述
[0007] 各種方面包括在瀏覽器中處理內(nèi)容的方法,包括在瀏覽器中接收包括一個(gè)或多個(gè) 預(yù)執(zhí)行操作的內(nèi)容,每個(gè)操作與簽名相關(guān)聯(lián),使用簽名驗(yàn)證過程來驗(yàn)證與至少一個(gè)預(yù)執(zhí)行 操作相關(guān)聯(lián)的簽名,當(dāng)簽名驗(yàn)證過程確認(rèn)與預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名時(shí)執(zhí)行第一操作,以 及當(dāng)該簽名驗(yàn)證過程不確認(rèn)與預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名時(shí)執(zhí)行第二操作。
[0008] 在一方面,執(zhí)行第一操作包括結(jié)合預(yù)執(zhí)行操作。在進(jìn)一步方面,執(zhí)行第一操作包 括跳過與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作。在進(jìn)一步方面,執(zhí)行第一操作包括更改與預(yù)執(zhí) 行操作相關(guān)聯(lián)的瀏覽器操作。在進(jìn)一步方面,執(zhí)行第二操作包括執(zhí)行與預(yù)執(zhí)行操作相關(guān)聯(lián) 的瀏覽器操作。在進(jìn)一步方面,使用簽名驗(yàn)證過程來驗(yàn)證與預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名包括 確定與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作是否可被跳過或不同地執(zhí)行以達(dá)成更好的結(jié)果。在 進(jìn)一步方面,該方法包括對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí) 行操作,并對該預(yù)執(zhí)行操作簽名。在進(jìn)一步方面,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操 作以生成至少一個(gè)預(yù)執(zhí)行操作包括在瀏覽器內(nèi)執(zhí)行工具操作。在進(jìn)一步方面,接收包括各 自與簽名相關(guān)聯(lián)的一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容包括從正在其上執(zhí)行瀏覽器的計(jì)算設(shè)備 的存儲器中檢索經(jīng)簽名預(yù)處理代碼。在進(jìn)一步方面,該方法包括將第一或第二操作的結(jié)果 存儲在計(jì)算設(shè)備的存儲器中。在進(jìn)一步方面,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作 以生成至少一個(gè)預(yù)執(zhí)行操作包括在離線工具中執(zhí)行工具操作,該方法進(jìn)一步包括將經(jīng)簽名 預(yù)執(zhí)行操作發(fā)送給瀏覽器。在進(jìn)一步方面,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以 生成至少一個(gè)預(yù)執(zhí)行操作包括在服務(wù)器中執(zhí)行工具操作,該方法進(jìn)一步包括將經(jīng)簽名預(yù)執(zhí) 行操作發(fā)送給正在其上執(zhí)行瀏覽器的計(jì)算設(shè)備。在進(jìn)一步方面,對與web頁面內(nèi)容對應(yīng)的 代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成JavaScript。在進(jìn)一步方面,對與 web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成級聯(lián)樣式表。 在進(jìn)一步方面,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包 括執(zhí)行源對源變換。在進(jìn)一步方面,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作包括標(biāo)記 級聯(lián)樣式表的未使用的各部分。在進(jìn)一步方面,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操 作以生成至少一個(gè)預(yù)執(zhí)行操作包括對與web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng)的代碼執(zhí)行工 具操作以生成至少一個(gè)預(yù)執(zhí)行操作。在進(jìn)一步方面,對與web頁面內(nèi)容中的可執(zhí)行腳本對 應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括預(yù)處理該web頁面內(nèi)容的一部分。 在進(jìn)一步方面,該方法進(jìn)一步包括將代碼的經(jīng)簽名預(yù)處理部分包括在web頁面內(nèi)容內(nèi),并 將該內(nèi)容發(fā)送給正在其上操作瀏覽器的計(jì)算設(shè)備。在進(jìn)一步方面,對預(yù)處理代碼簽名由驗(yàn) 證器來完成。在進(jìn)一步方面,對預(yù)處理代碼簽名包括提供證實(shí)預(yù)處理操作中已經(jīng)遵循某些 規(guī)則的簽名。
[0009] 進(jìn)一步方面包括計(jì)算設(shè)備,其包括用于接收包括各自與簽名相關(guān)聯(lián)的一個(gè)或多個(gè) 預(yù)執(zhí)行操作的內(nèi)容的裝置、用于使用簽名驗(yàn)證過程來驗(yàn)證與至少一個(gè)預(yù)執(zhí)行操作相關(guān)聯(lián)的 簽名的裝置、用于在該簽名驗(yàn)證過程確認(rèn)與預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名時(shí)執(zhí)行第一操作的裝 置、以及用于在該簽名驗(yàn)證過程不確認(rèn)與預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名時(shí)執(zhí)行第二操作的裝 置。在一方面,用于執(zhí)行第一操作的裝置包括用于結(jié)合預(yù)執(zhí)行操作的裝置。在進(jìn)一步方面, 用于執(zhí)行第一操作的裝置包括用于跳過與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作的裝置。在進(jìn) 一步方面,用于執(zhí)行第一操作的裝置包括用于更改與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作的裝 置。在進(jìn)一步方面,用于執(zhí)行第二操作的裝置包括用于執(zhí)行與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器 操作的裝置。在進(jìn)一步方面,用于使用簽名驗(yàn)證過程來驗(yàn)證與預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名的 裝置包括用于確定與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作是否可被跳過或不同地執(zhí)行以達(dá)成 更好的結(jié)果的裝置。在進(jìn)一步方面,該設(shè)備進(jìn)一步包括用于對與web頁面內(nèi)容對應(yīng)的代碼 執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置,以及用于對該預(yù)執(zhí)行操作簽名的裝置。 在進(jìn)一步方面,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操 作的裝置包括用于在該計(jì)算設(shè)備上執(zhí)行的瀏覽器應(yīng)用內(nèi)執(zhí)行工具操作的裝置。在進(jìn)一步方 面,用于接收包括各自與簽名相關(guān)聯(lián)的一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容的裝置包括用于從存 儲器中檢索經(jīng)簽名預(yù)處理代碼的裝置。在進(jìn)一步方面,該計(jì)算設(shè)備包括用于將第一或第二 操作的結(jié)果存儲在存儲器中的裝置。在進(jìn)一步方面,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí) 行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于生成JavaScript的裝置。在進(jìn)一 步方面,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝 置包括用于生成級聯(lián)樣式表的裝置。在進(jìn)一步方面,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí) 行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于用于執(zhí)行源對源變換的裝置。在進(jìn) 一步方面,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作的裝置包括用于標(biāo)記級聯(lián)樣式 表的未使用的各部分的裝置。在進(jìn)一步方面,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具 操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于對與web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng) 的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置。在進(jìn)一步方面,用于對與web頁 面內(nèi)容中的可執(zhí)行腳本對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括 用于預(yù)處理該web頁面內(nèi)容的一部分的裝置。在進(jìn)一步方面,用于對預(yù)處理代碼簽名的裝 置包括用于在計(jì)算設(shè)備上執(zhí)行的驗(yàn)證器應(yīng)用中對預(yù)處理代碼簽名的裝置。在進(jìn)一步方面, 用于對預(yù)處理代碼簽名的裝置包括用于生成證實(shí)預(yù)處理操作中已經(jīng)遵循某些規(guī)則的簽名 的裝置。
[0010] 進(jìn)一步方面包括服務(wù)器,其包括用于接收web頁面內(nèi)容的裝置、用于對與該web頁 面內(nèi)容的各部分對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置、用于對所生 成的預(yù)執(zhí)行操作簽名的裝置、用于將經(jīng)簽名預(yù)處理操作包括在web頁面內(nèi)容中的裝置、以 及用于將web頁面內(nèi)容發(fā)送給計(jì)算設(shè)備的裝置。在一方面,用于對與web頁面內(nèi)容對應(yīng)的代 碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于生成JavaScript的裝置。在 進(jìn)一步方面,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作 的裝置包括用于生成級聯(lián)樣式表的裝置。在進(jìn)一步方面,用于對與web頁面內(nèi)容對應(yīng)的代 碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于執(zhí)行源對源變換的裝置。在進(jìn) 一步方面,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作的裝置包括用于標(biāo)記級聯(lián)樣式 表的未使用的各部分的裝置。在進(jìn)一步方面,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具 操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于對與web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng) 的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置。在進(jìn)一步方面,用于對預(yù)處理代 碼簽名的裝置包括用于提供證實(shí)預(yù)處理操作中已經(jīng)遵循某些規(guī)則的簽名的裝置。
[0011] 進(jìn)一步方面包括計(jì)算設(shè)備,其包括存儲器以及耦合至該存儲器的處理器,其中該 處理器被配置有處理器可執(zhí)行指令以執(zhí)行包括以下的操作:接收包括各自與簽名相關(guān)聯(lián)的 一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容、使用簽名驗(yàn)證過程來驗(yàn)證與至少一個(gè)預(yù)執(zhí)行操作相關(guān)聯(lián)的 簽名、在該簽名驗(yàn)證過程確認(rèn)與預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名時(shí)執(zhí)行第一操作、以及在該簽名 驗(yàn)證過程不確認(rèn)與預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名時(shí)執(zhí)行第二操作。在一方面,處理器被配置有 處理器可執(zhí)行指令以執(zhí)行操作以使得執(zhí)行第一操作包括結(jié)合預(yù)執(zhí)行操作。在進(jìn)一步方面, 處理器被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得執(zhí)行第一操作包括跳過與預(yù)執(zhí)行操 作相關(guān)聯(lián)的瀏覽器操作。在進(jìn)一步方面,處理器被配置有處理器可執(zhí)行指令以執(zhí)行操作以 使得執(zhí)行第一操作包括更改與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作。在進(jìn)一步方面,處理器被 配置有處理器可執(zhí)行指令以執(zhí)行操作以使得執(zhí)行第二操作包括執(zhí)行與預(yù)執(zhí)行操作相關(guān)聯(lián) 的瀏覽器操作。在進(jìn)一步方面,處理器被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得使用 簽名驗(yàn)證過程來驗(yàn)證與預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名包括確定與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器 操作是否可被跳過或不同地執(zhí)行以達(dá)成更好的結(jié)果。在進(jìn)一步方面,處理器被配置有處理 器可執(zhí)行指令以執(zhí)行操作進(jìn)一步包括對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成 至少一個(gè)預(yù)執(zhí)行操作,并對該預(yù)執(zhí)行操作簽名。在進(jìn)一步方面,處理器被配置有處理器可 執(zhí)行指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè) 預(yù)執(zhí)行操作包括在計(jì)算設(shè)備上執(zhí)行的瀏覽器內(nèi)執(zhí)行工具操作。在進(jìn)一步方面,處理器被配 置有處理器可執(zhí)行指令以執(zhí)行操作以使得接收包括各自與簽名相關(guān)聯(lián)的一個(gè)或多個(gè)預(yù)執(zhí) 行操作的內(nèi)容包括從存儲器中檢索經(jīng)簽名預(yù)處理代碼。在進(jìn)一步方面,處理器被配置有處 理器可執(zhí)行指令以執(zhí)行操作進(jìn)一步包括將第一或第二操作的結(jié)果存儲到存儲器中。在進(jìn)一 步方面,處理器被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代 碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成JavaScript。在進(jìn)一步方面,處理器 被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操 作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成級聯(lián)樣式表。在進(jìn)一步方面,處理器被配置有處理 器可執(zhí)行指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少 一個(gè)預(yù)執(zhí)行操作包括執(zhí)行源對源變換。在進(jìn)一步方面,處理器被配置有處理器可執(zhí)行指令 以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作包括標(biāo)記級聯(lián)樣式表的未 使用的各部分。在進(jìn)一步方面,處理器被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得對與 web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括對與web頁面內(nèi)容 中的可執(zhí)行腳本對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作。在進(jìn)一步方面,處 理器被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工 具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括預(yù)處理web頁面內(nèi)容的一部分。在進(jìn)一步方面,處 理器被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得對預(yù)處理代碼簽名包括在計(jì)算設(shè)備上 執(zhí)行的驗(yàn)證器中對預(yù)處理代碼簽名。在進(jìn)一步方面,處理器被配置有處理器可執(zhí)行指令以 執(zhí)行操作以使得對預(yù)處理代碼簽名包括提供證實(shí)預(yù)處理操作中已經(jīng)遵循某些規(guī)則的簽名。
[0012] 進(jìn)一步方面包括服務(wù)器,其包括存儲器和耦合至該存儲器的處理器,其中該處理 器被配置有處理器可執(zhí)行指令以執(zhí)行包括以下的操作:接收web頁面內(nèi)容、對與該web頁 面內(nèi)容的各部分對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作、對所生成的預(yù)執(zhí)行 操作簽名、將經(jīng)簽名預(yù)處理操作包括在web頁面內(nèi)容中、以及將包括經(jīng)簽名預(yù)處理操作的 web頁面內(nèi)容發(fā)送給計(jì)算設(shè)備。在一方面,處理器被配置有處理器可執(zhí)行指令以執(zhí)行操作 以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成 JavaScript。在進(jìn)一步方面,處理器被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得對與web 頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成級聯(lián)樣式表。在進(jìn) 一步方面,處理器被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的 代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括執(zhí)行源對源變換。在進(jìn)一步方面,處理 器被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具 操作包括標(biāo)記級聯(lián)樣式表的未使用的各部分。在進(jìn)一步方面,處理器被配置有處理器可執(zhí) 行指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù) 執(zhí)行操作包括對與web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng)的代碼執(zhí)行工具操作以生成至少一 個(gè)預(yù)執(zhí)行操作。在進(jìn)一步方面,處理器被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得對預(yù) 處理代碼簽名包括生成證實(shí)預(yù)處理操作中已經(jīng)遵循某些規(guī)則的簽名。
[0013] 進(jìn)一步方面包括具有存儲其上的處理器可執(zhí)行軟件指令的非瞬態(tài)計(jì)算機(jī)可讀存 儲介質(zhì),該處理器可執(zhí)行軟件指令使處理器執(zhí)行用于處理瀏覽器中的內(nèi)容的操作,該操作 包括接收包括各自與簽名相關(guān)聯(lián)的一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容、使用簽名驗(yàn)證過程來驗(yàn) 證與至少一個(gè)預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名、在該簽名驗(yàn)證過程確認(rèn)與預(yù)執(zhí)行操作相關(guān)聯(lián)的簽 名時(shí)執(zhí)行第一操作、以及在該簽名驗(yàn)證過程不確認(rèn)與預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名時(shí)執(zhí)行第二 操作。在一方面,所存儲的處理器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得執(zhí)行 第一操作包括結(jié)合預(yù)執(zhí)行操作。在進(jìn)一步方面,所存儲的處理器可執(zhí)行軟件指令被配置成 使處理器執(zhí)行操作以使得執(zhí)行第一操作包括跳過與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作。在進(jìn) 一步方面,所存儲的處理器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得執(zhí)行第一操 作包括更改與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作。在進(jìn)一步方面,所存儲的處理器可執(zhí)行軟 件指令被配置成使處理器執(zhí)行操作以使得執(zhí)行第二操作包括執(zhí)行與預(yù)執(zhí)行操作相關(guān)聯(lián)的 瀏覽器操作。在進(jìn)一步方面,所存儲的處理器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作 以使得使用簽名驗(yàn)證過程來驗(yàn)證與預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名包括確定與預(yù)執(zhí)行操作相關(guān) 聯(lián)的瀏覽器操作是否可被跳過或不同地執(zhí)行以達(dá)成更好的結(jié)果。在進(jìn)一步方面,所存儲的 處理器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作進(jìn)一步包括對與web頁面內(nèi)容對應(yīng)的 代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作,并對該預(yù)執(zhí)行操作簽名。在進(jìn)一步方面,所 存儲的處理器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng) 的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括在瀏覽器內(nèi)執(zhí)行工具操作。在進(jìn)一步 方面,所存儲的處理器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得接收包括各自與 簽名相關(guān)聯(lián)的一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容包括從正在其上執(zhí)行瀏覽器的計(jì)算設(shè)備的存 儲器中檢索經(jīng)簽名預(yù)處理代碼。在進(jìn)一步方面,所存儲的處理器可執(zhí)行軟件指令被配置成 使處理器執(zhí)行操作進(jìn)一步包括將第一或第二操作的結(jié)果存儲到計(jì)算設(shè)備的存儲器中。在進(jìn) 一步方面,所存儲的處理器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁 面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成JavaScript。在進(jìn)一 步方面,所存儲的處理器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁面 內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成級聯(lián)樣式表。在進(jìn)一步 方面,所存儲的處理器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁面內(nèi) 容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括執(zhí)行源對源變換。在進(jìn)一步方 面,所存儲的處理器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁面內(nèi)容 對應(yīng)的代碼執(zhí)行工具操作包括標(biāo)記級聯(lián)樣式表的未使用的各部分。在進(jìn)一步方面,所存儲 的處理器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代 碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括對與web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng) 的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作。在進(jìn)一步方面,所存儲的處理器可執(zhí)行 軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng)的代 碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括預(yù)處理web頁面內(nèi)容的一部分。在進(jìn)一步 方面,所存儲的處理器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對預(yù)處理代碼簽 名包括在正在其上執(zhí)行驗(yàn)證器的計(jì)算設(shè)備中對預(yù)處理代碼簽名。在進(jìn)一步方面,所存儲的 處理器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對預(yù)處理代碼簽名包括提供證 實(shí)預(yù)處理操作中已經(jīng)遵循某些規(guī)則的簽名。
[0014] 進(jìn)一步方面包括具有存儲其上的服務(wù)器可執(zhí)行軟件指令的非瞬態(tài)計(jì)算機(jī)可讀存 儲器介質(zhì),該服務(wù)器可執(zhí)行軟件指令使服務(wù)器執(zhí)行包括以下的操作:接收web頁面內(nèi)容、對 與該web頁面內(nèi)容的各部分對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作、對所生 成的預(yù)執(zhí)行操作簽名、將經(jīng)簽名預(yù)處理操作包括在web頁面內(nèi)容中、以及將包括經(jīng)簽名預(yù) 處理操作的web頁面內(nèi)容發(fā)送給計(jì)算設(shè)備,以及該服務(wù)器處理器被配置有服務(wù)器可執(zhí)行指 令以執(zhí)行包括對與該web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作 并對預(yù)執(zhí)行操作簽名的操作。
[0015] 在一方面,所存儲的服務(wù)器可執(zhí)行軟件指令被配置成使服務(wù)器執(zhí)行操作以使 得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成 JavaScript。在進(jìn)一步方面,所存儲的服務(wù)器可執(zhí)行軟件指令被配置成使服務(wù)器執(zhí)行操作 以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成 級聯(lián)樣式表。在進(jìn)一步方面,所存儲的服務(wù)器可執(zhí)行軟件指令被配置成使服務(wù)器執(zhí)行操作 以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括執(zhí)行 源對源變換。在進(jìn)一步方面,所存儲的服務(wù)器可執(zhí)行軟件指令被配置成使服務(wù)器執(zhí)行操作 以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作包括標(biāo)記級聯(lián)樣式表的未使用的各部 分。在進(jìn)一步方面,所存儲的服務(wù)器可執(zhí)行軟件指令被配置成使服務(wù)器執(zhí)行操作以使得對 與web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包 括對與web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操 作。在進(jìn)一步方面,所存儲的服務(wù)器可執(zhí)行軟件指令被配置成使服務(wù)器執(zhí)行操作以使得對 預(yù)處理代碼簽名包括提供證實(shí)預(yù)處理操作中已經(jīng)遵循某些規(guī)則的簽名。
[0016] 進(jìn)一步方面包括系統(tǒng),其包括包含客戶端存儲器和耦合至該客戶端存儲器的客戶 端處理器的客戶端設(shè)備以及包含服務(wù)器存儲器和耦合至該服務(wù)器存儲器的服務(wù)器處理器 的服務(wù)器,其中客戶端處理器被配置有處理器可執(zhí)行指令以執(zhí)行包括以下的操作:接收包 括各自與簽名相關(guān)聯(lián)的一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容、使用簽名驗(yàn)證過程來驗(yàn)證與至少一 個(gè)預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名、在該簽名驗(yàn)證過程確認(rèn)與預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名時(shí)執(zhí)行第 一操作、以及在該簽名驗(yàn)證過程不確認(rèn)與預(yù)執(zhí)行相關(guān)聯(lián)的簽名時(shí)執(zhí)行第二操作。在一方面, 客戶端處理器被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得執(zhí)行第一操作包括結(jié)合預(yù)執(zhí) 行操作。在進(jìn)一步方面,客戶端處理器被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得執(zhí)行 第一操作包括跳過與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作。在進(jìn)一步方面,客戶端處理器被配 置有處理器可執(zhí)行指令以執(zhí)行操作以使得執(zhí)行第一操作包括更改與預(yù)執(zhí)行操作相關(guān)聯(lián)的 瀏覽器操作。在進(jìn)一步方面,客戶端處理器被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得 執(zhí)行第二操作包括執(zhí)行與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作。在進(jìn)一步方面,客戶端處理器 被配置有處理器可執(zhí)行指令以執(zhí)行操作以使得使用簽名驗(yàn)證過程來驗(yàn)證與預(yù)執(zhí)行操作相 關(guān)聯(lián)的簽名包括確定與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作是否可被跳過或不同地執(zhí)行以達(dá) 成更好的結(jié)果。在進(jìn)一步方面,服務(wù)器處理器被配置有服務(wù)器可執(zhí)行指令以使得對與web 頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成JavaScript。在進(jìn) 一步方面,服務(wù)器處理器被配置有服務(wù)器可執(zhí)行指令以使得對與web頁面內(nèi)容對應(yīng)的代碼 執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成級聯(lián)樣式表。在進(jìn)一步方面,服務(wù)器處 理器被配置有服務(wù)器可執(zhí)行指令以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生 成至少一個(gè)預(yù)執(zhí)行操作包括執(zhí)行源對源變換。在進(jìn)一步方面,服務(wù)器被配置有服務(wù)器可執(zhí) 行指令以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作包括標(biāo)記級聯(lián)樣式表的未使用 的各部分。在進(jìn)一步方面,服務(wù)器處理器被配置有服務(wù)器可執(zhí)行指令以使得對與web頁面 內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括對與web頁面內(nèi)容中的可 執(zhí)行腳本對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作。在進(jìn)一步方面,服務(wù)器處 理器被配置有服務(wù)器可執(zhí)行指令以使得對預(yù)處理代碼簽名包括生成證實(shí)預(yù)處理操作中已 經(jīng)遵循某些規(guī)則的簽名。在進(jìn)一步方面,服務(wù)器處理器被配置有服務(wù)器可執(zhí)行指令以執(zhí)行 操作進(jìn)一步包括將經(jīng)簽名預(yù)處理操作包括在web頁面內(nèi)容內(nèi)以及將包括經(jīng)簽名預(yù)處理操 作的web頁面內(nèi)容發(fā)送給客戶端設(shè)備。在進(jìn)一步方面,客戶端處理器被配置有處理器可執(zhí) 行指令以執(zhí)行操作以使得接收包括各自與簽名相關(guān)聯(lián)的一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容包 括從服務(wù)器接收包括經(jīng)簽名預(yù)處理操作的web頁面內(nèi)容。
[0017] 附圖簡述
[0018] 納入本文且構(gòu)成本說明書一部分的附圖解說了本發(fā)明的示例性方面,并與以上給 出的一般描述和下面給出的詳細(xì)描述一起用來解釋本發(fā)明的特征。
[0019] 圖1是解說適于實(shí)現(xiàn)各種方面的示例網(wǎng)絡(luò)中的邏輯組件和流程的組件框圖。
[0020] 圖2A-B是用于用外部代碼認(rèn)證來降低web瀏覽開銷的一方面方法的過程流程圖。
[0021] 圖3是用于用外部代碼認(rèn)證來降低web瀏覽開銷的另一方面方法的過程流程圖。
[0022] 圖4是適于與各種方面聯(lián)用的示例移動設(shè)備的解說。
[0023] 圖5是適于與各種方面聯(lián)用的示例個(gè)人計(jì)算機(jī)的解說。
[0024] 詳細(xì)描述
[0025] 將參照附圖詳細(xì)描述各個(gè)方面。在任何可能的地方,相同附圖標(biāo)記用于在附圖中 通篇指代相同或類似部分。對特定示例和實(shí)現(xiàn)所作的引用是用于解說性的目的,而無意限 定本發(fā)明或權(quán)利要求的范圍。
[0026] 術(shù)語"計(jì)算設(shè)備"本文一般用于指以下各項(xiàng)中的任何一項(xiàng)或全部:服務(wù)器、個(gè) 人計(jì)算機(jī)、移動設(shè)備、蜂窩電話、個(gè)人數(shù)據(jù)助理(PDA)、掌上計(jì)算機(jī)、無線電子郵件接收 器(例如,Blackberry?和Treo?設(shè)備)、有因特網(wǎng)能力的多媒體蜂窩電話(例如, Blackberry Storm? )、全球定位系統(tǒng)(GPS)接收機(jī)、無線游戲控制器、個(gè)人計(jì)算機(jī)、以及包 括配置有web瀏覽器類型應(yīng)用的可編程處理器的類似個(gè)人電子設(shè)備。盡管各種方面對于具 有有限處理功率的移動設(shè)備(諸如蜂窩手機(jī))特別有用,但這些方面在執(zhí)行以動態(tài)和/或 腳本語言編寫的腳本和應(yīng)用的任何計(jì)算設(shè)備中都普遍有用。
[0027] 本文一般使用術(shù)語"簽名"和"認(rèn)證"并且該術(shù)語可指對代碼、腳本、數(shù)據(jù)或內(nèi)容進(jìn) 行編碼或標(biāo)記以使得客戶端(例如,web瀏覽器)能確定該代碼/腳本/數(shù)據(jù)/內(nèi)容由離 線工具或驗(yàn)證器預(yù)處理,和/或另行符合客戶端的要求的任何方法。
[0028] 在本申請中一般使用術(shù)語"腳本語言"并且該術(shù)語可指任何動態(tài)語言、腳本語言、 標(biāo)記語言、樣式表,或用于編寫在運(yùn)行時(shí)解釋和/或編譯的程序(本文為"代碼"或"腳本") 的任何解釋語言。因此,出于本申請的目的,術(shù)語"腳本語言"不應(yīng)被限定于從源代碼或字 節(jié)碼解釋的語言,或者連同傳統(tǒng)地編譯成本機(jī)代碼的程序執(zhí)行的那些語言。本申請范圍內(nèi) 的腳本語言的示例包括,例如JavaScript、級聯(lián)樣式表、HTML、Python和Ruby,以及Java和 可能在將來開發(fā)的其它語言。
[0029] 本文使用JavaScript和相關(guān)技術(shù)作為可被各種實(shí)施例使用或處理的腳本語言的 方便示例描述了各種方面。然而,應(yīng)理解,本文與JavaScript和對JavaScript語言的其它 參考有關(guān)的示例僅是出于解說目的,并不旨在用于將描述或各實(shí)施例限定于特定類型的動 態(tài)腳本語言。因此,權(quán)利要求的范圍不應(yīng)被解讀為要求JavaScript,除非特別聲明。
[0030] 應(yīng)理解,術(shù)語"代碼"和"腳本"本文可一般和互換地使用,并且涵蓋了可被應(yīng)用使 用或呈現(xiàn)的數(shù)據(jù)和內(nèi)容。還應(yīng)理解,本文公開的各種方面可應(yīng)用于應(yīng)用(例如瀏覽器)的 任何方面,包括代碼和內(nèi)容兩者。
[0031] 在各種方面中,瀏覽器操作可被分為兩個(gè)部分(離線工具部分和瀏覽器部分),從 而某些瀏覽器操作與其它瀏覽器操作在時(shí)間和空間兩者中分離(即,提前執(zhí)行,由不同機(jī) 器執(zhí)行)。簽名/認(rèn)證可被用于確保這兩個(gè)部分的結(jié)果可在運(yùn)行時(shí)間被安全組合。
[0032] 如上所提及的,盡管瀏覽器技術(shù)中有許多最近的進(jìn)步,但web瀏覽器一般仍舊缺 少執(zhí)行復(fù)雜計(jì)算密集型任務(wù)的能力。各種方面通過使一些任務(wù)提前執(zhí)行、使用與web瀏覽 器本身分離的外部或"離線"工具來克服了這一以及其它限制。例如,瀏覽器可被配置成 允許由離線/外部工具提前進(jìn)行某些變換、最優(yōu)化、計(jì)算和/或分析,其結(jié)果可由瀏覽器接 收并在運(yùn)行時(shí)間用于改善瀏覽器的性能。離線/外部工具可通過例如標(biāo)記有效載荷期間 不使用的級聯(lián)樣式表(CSS)的各部分來預(yù)處理數(shù)據(jù),從而瀏覽器能容易地標(biāo)識未使用的 各部分。離線/外部工具還可執(zhí)行源對源變換(例如,獲取JavaScript并生成最優(yōu)化的 JavaScript),并且所生成/經(jīng)變換的代碼(例如JavaScript)可與內(nèi)容嵌在一起以供瀏覽 器處理、執(zhí)行和/或顯示。
[0033] 因?yàn)樵即a和隨后生成的代碼可以是相同格式的(例如,兩者都是 JavaScript),所以web瀏覽器并非完全被通知已經(jīng)由外部/離線工具執(zhí)行的任務(wù),預(yù)處理 任務(wù)是否仍是當(dāng)前的(例如,鑒于對內(nèi)容的近期更新/改變等),或者預(yù)執(zhí)行任務(wù)是否按不 導(dǎo)致因例如不兼容假定而造成的故障或違反(例如,不正確執(zhí)行、不受約束的故障等)的方 式來執(zhí)行的。
[0034] 出于這些和其它原因,可要求瀏覽器執(zhí)行數(shù)個(gè)操作以在執(zhí)行之前驗(yàn)證所生成代碼 的有效性。這一驗(yàn)證過程可要求在瀏覽器與離線工具之間傳遞大量的補(bǔ)充信息(例如,任 務(wù)和版本信息、所支持的瀏覽器、預(yù)處理方法體系等)、和/或在接收到的代碼的整個(gè)主體 上執(zhí)行字節(jié)碼驗(yàn)證(例如,如在加載Java類時(shí)強(qiáng)制的)。傳遞大量補(bǔ)充信息增加了對瀏覽 器的開銷。驗(yàn)證開銷可能不僅是執(zhí)行所有階段并忽略預(yù)處理數(shù)據(jù)。額外開銷可能抵消運(yùn)行 離線工具的益處。
[0035] 各種方面提供了利用與一個(gè)或多個(gè)預(yù)處理腳本/代碼/數(shù)據(jù)/內(nèi)容(本文統(tǒng)稱為 "腳本"或"代碼")相關(guān)聯(lián)的簽名或認(rèn)證的框架,從而web瀏覽器能驗(yàn)證、確認(rèn)和/或信任 該腳本并通過依賴于由瀏覽器先前生成或由離線/外部工具提供并存儲在存儲器中的代 碼來跳過對相關(guān)聯(lián)腳本的進(jìn)一步處理。
[0036] 各種方面按以下方式驗(yàn)證、編碼并傳遞預(yù)處理代碼給瀏覽器:使該瀏覽器能確定 已經(jīng)被預(yù)處理的任務(wù)(例如,變換、最優(yōu)化、編譯、計(jì)算、分析等),并且從而該瀏覽器能相信 該預(yù)處理器代碼是值得信任的(即,該預(yù)處理代碼將正確執(zhí)行),而無需執(zhí)行額外處理。
[0037] 在各種方面,由離線/外部工具生成并與web頁面的其余部分包括在一起的代碼 /數(shù)據(jù)可被嵌入有"經(jīng)驗(yàn)證戳"或"簽名"。該簽名可標(biāo)識(例如,經(jīng)由驗(yàn)證標(biāo)識符)已經(jīng)完 成的任務(wù)。該簽名還可使瀏覽器能確認(rèn)該代碼已經(jīng)被高效編碼并且可被執(zhí)行而無需額外處 理或?yàn)g覽器驗(yàn)證。因此,在一方面,取代將大量補(bǔ)充信息傳遞給瀏覽器,所生成的代碼可用 嵌入到代碼中(例如,在標(biāo)注、注釋等中)的簽名來簽名,從而客戶端應(yīng)用(例如瀏覽器) 能容易地標(biāo)識哪些任務(wù)已經(jīng)完成并信任該代碼對于執(zhí)行是安全的。在一方面,該簽名可以 是良好定義的、結(jié)構(gòu)化的和高效編碼的補(bǔ)充信息。
[0038] 通過將"經(jīng)驗(yàn)證戳"或"簽名"嵌入到代碼中,各種方面消除了瀏覽器執(zhí)行任何額 外操作以驗(yàn)證預(yù)處理代碼的需要,從而降低了 web瀏覽開銷并改善了性能。
[0039] 在一方面,使用簽名來確認(rèn)和驗(yàn)證先前處理的代碼還可被web瀏覽器在將處理 web網(wǎng)頁的結(jié)果存儲到存儲器中時(shí)使用。在這一方面,當(dāng)瀏覽器處理web頁面腳本同時(shí)呈現(xiàn) web頁面時(shí),經(jīng)處理的腳本可被存儲在存儲器中以供下次呈現(xiàn)該頁面時(shí)重用。因?yàn)閣eb頁面 頻繁變化,所以處理器可能常規(guī)上必須顯著地處理頁面腳本以便確定該頁面是否與先前呈 現(xiàn)的相同。各方面使web瀏覽器能在已經(jīng)處理了存儲器所保存的代碼后對其簽名。瀏覽器 可以隨后使用該簽名來確定所保存的代碼是否可信以正確地呈現(xiàn)頁面。例如,如果web頁 面內(nèi)容從上次被web瀏覽器呈現(xiàn)以來已經(jīng)改變,則驗(yàn)證該簽名的過程可將內(nèi)容的改變通知 瀏覽器,在這種情形中,瀏覽器可選擇執(zhí)行腳本而非重用從存儲器中檢索的先前代碼。
[0040] 在預(yù)處理代碼中嵌入戳/簽名/認(rèn)證可在外部/離線工具與瀏覽器之間提供高效 通信協(xié)議,使瀏覽器能確認(rèn)接收到的代碼的安全性或值得信任的本質(zhì)(即,沒有不恰當(dāng)?shù)?存儲器存取、自生成該代碼以來沒有顯著改變、該代碼將不會導(dǎo)致故障等)。
[0041] 如上所提及的,瀏覽器操作可被分為兩個(gè)部分(離線工具部分和瀏覽器部分), 從而某些瀏覽器操作與其它操作在時(shí)間和空間兩者中分離(即,提前執(zhí)行,由不同機(jī)器執(zhí) 行)。在一方面,離線工具(例如,執(zhí)行靜態(tài)和/或動態(tài)分析的工具)可生成預(yù)處理代碼, 簽名該代碼以認(rèn)證該代碼遵循某些規(guī)則,以及將經(jīng)簽名代碼嵌入到瀏覽器中。在一方面,預(yù) 處理代碼可由外部驗(yàn)證器來驗(yàn)證,該外部驗(yàn)證器可對離線工具的結(jié)果(即,預(yù)處理代碼)簽 名。該結(jié)果可用私鑰或通過包括標(biāo)記、屬性、格式化標(biāo)注等形式的已知關(guān)鍵字來簽名。瀏覽 器可使用密碼證書來確定該代碼是否被已知外部/離線工具處理,該代碼是否是當(dāng)前的, 和/或該代碼是否是安全或值得信任的。例如,瀏覽器可使用驗(yàn)證器公鑰來驗(yàn)證嵌入的簽 名以確定該代碼是否事實(shí)上由獲信任的驗(yàn)證器或其期望版本處理過。如果瀏覽器驗(yàn)證了該 代碼中的簽名,則瀏覽器可信任該代碼對于執(zhí)行是安全的,而無需浪費(fèi)任何額外開銷,請求 額外信息或執(zhí)行代碼驗(yàn)證通常要求的任何額外處理/分析。這一過程使瀏覽器能夠依賴并 使用預(yù)處理代碼,由此降低了客戶端設(shè)備中的處理開銷并改善了性能。
[0042] 在web瀏覽器存儲經(jīng)處理代碼并使用所嵌入的簽名來驗(yàn)證所存儲的代碼是否是 值得信任的方面中,該過程以類似方式進(jìn)行,除了瀏覽器自身用作驗(yàn)證器。
[0043] 圖1解說了根據(jù)各種方面的可被用于用外部代碼認(rèn)證來降低web瀏覽開銷的示例 網(wǎng)絡(luò)100。網(wǎng)絡(luò)100可包括經(jīng)由因特網(wǎng)104將內(nèi)容遞送給客戶機(jī)106的web/內(nèi)容服務(wù)器 102。客戶機(jī)106可包括網(wǎng)絡(luò)接口模塊108、顯示模塊116、存儲器118、和web瀏覽器110。 瀏覽器110可包括用于解釋和執(zhí)行JavaScript的JavaScript引擎112。
[0044] 網(wǎng)絡(luò)100還可包括配置成執(zhí)行瀏覽器操作的離線/外部工具114。外部/離線工 具114可在網(wǎng)絡(luò)100的任何地方實(shí)現(xiàn),諸如在web服務(wù)器102、單獨(dú)服務(wù)器、代理上,或者在 客戶機(jī)106上。外部/離線工具114可實(shí)現(xiàn)為單獨(dú)過程或作為瀏覽器110的一部分。外部 /離線工具114可被配置成生成代碼(例如,可以是預(yù)處理器)或者將靜態(tài)的預(yù)處理代碼 (例如,由開發(fā)人員提供的代碼、瀏覽器的先前執(zhí)行會話的結(jié)果等)發(fā)送給瀏覽器110。
[0045] 瀏覽器110可被配置成將某些瀏覽器操作(例如,變換、最優(yōu)化等)卸載至離線/ 外部工具114,從而經(jīng)卸載的操作與其它操作在時(shí)間和/或空間中分離(即,提前執(zhí)行,由 不同機(jī)器執(zhí)行)。外部/離線工具114可編譯JavaScript,生成用于一個(gè)或多個(gè)平臺(例 如android等)的代碼,以及用簽名來簽名所生成的代碼。由離線/外部工具114所生成 的代碼可以是與由瀏覽器使用的代碼相同類型的(即,執(zhí)行源對源變換)。例如,離線工具 可將JavaScript代碼作為輸入并生成最優(yōu)化的(以及經(jīng)簽名的)JavaScript代碼作為其 輸出。所生成的代碼可以是經(jīng)編譯的可執(zhí)行代碼(例如,一系列完全編譯的函數(shù))。簽名的 存在允許瀏覽器110直接調(diào)用所生成的代碼并信任其執(zhí)行將導(dǎo)致與由瀏覽器110本身生成 JavaScript代碼(例如,經(jīng)由JavaScript引擎112)的情況完全相同的操作。此舉有效地 消除了基本上從瀏覽器/用戶角度的所有JavaScript編譯成本。
[0046] -方面,外部/離線工具114可以是瀏覽器110的一部分,并包括在客戶機(jī)106檢 測到它連接至電源和/或處于空閑時(shí)預(yù)處理腳本的預(yù)處理器。
[0047] 在一方面,外部/離線工具114可將經(jīng)預(yù)處理的代碼簽名并存儲在存儲器中以供 稍后使用。
[0048] 在一方面,簽名可被嵌入到所生成的代碼中,從而它們不會影響不支持這些簽名 的瀏覽器。在一方面,離線/外部工具可被配置成嵌入代碼,從而所嵌入的代碼可被未修改 的JavaScript引擎忽略并由經(jīng)修改以理解所嵌入代碼的JavaScript引擎來處理。一方面, 離線/外部工具可被配置成將該代碼嵌入到評注或注釋中。
[0049] 圖2A解說了通過使用外部代碼認(rèn)證來降低web瀏覽開銷的方法的一方面200。在 框202,瀏覽器操作可被分為離線工具部分和瀏覽器部分。在框204,離線工具在瀏覽器執(zhí) 行代碼之前執(zhí)行離線工具部分并且生成預(yù)處理代碼。在框206,離線工具可通過將簽名嵌 入到代碼中來簽名預(yù)處理代碼。在一方面,作為框206的一部分,預(yù)處理代碼可由驗(yàn)證器來 驗(yàn)證,該驗(yàn)證器可用散列類型簽名操作中使用的私鑰或其它可驗(yàn)證密鑰來對離線工具的結(jié) 果(即,預(yù)處理代碼)簽名。各種已知簽名過程的任何一種可用于基于經(jīng)處理代碼的內(nèi)容 來生成簽名。通過對經(jīng)處理代碼簽名,接收機(jī)設(shè)備能夠通過在接收到代碼時(shí)對其執(zhí)行相同 或類似過程來驗(yàn)證簽名。替換地,該簽名可基于預(yù)處理代碼。在框208,經(jīng)簽名預(yù)處理代碼 可連同web內(nèi)容的其余部分被發(fā)送給瀏覽器。
[0050] 在框210,瀏覽器可接收經(jīng)簽名代碼連同web頁面內(nèi)容的其余部分。在框212,瀏覽 器可評估接收到的代碼中的簽名。例如,作為框212的一部分,瀏覽器可使用驗(yàn)證器公鑰來 驗(yàn)證該代碼是否事實(shí)上由獲信任的驗(yàn)證器處理過。同樣或者替換地,瀏覽器可對web頁面 中已經(jīng)被預(yù)處理的腳本執(zhí)行散列函數(shù)以獲得該代碼的散列值特性。這一驗(yàn)證過程能確認(rèn)預(yù) 處理代碼對應(yīng)于web頁面中的未處理腳本以及預(yù)處理由值得信任的離線工具執(zhí)行這兩者。
[0051] 在確定框214中,瀏覽器可確定該簽名是否匹配。如果瀏覽器確定所生成和嵌入 的簽名匹配(即,確定框214 = "是"),則在框216,瀏覽器可在運(yùn)行時(shí)間組合客戶端部分和 離線工具部分并執(zhí)行經(jīng)簽名代碼(信任該代碼的安全性)。如果瀏覽器確定該簽名不匹配 (即,確定框214 = "否"),則在框218,瀏覽器可通過執(zhí)行腳本來呈現(xiàn)頁面,如同未曾提供 過預(yù)處理代碼。因此,簽名的嵌入通過使瀏覽器能信任該代碼是安全的(例如,正確操作、 沒有未授權(quán)存儲器存取等)確保某些瀏覽器操作與其它操作的結(jié)果能在運(yùn)行時(shí)間被安全 組合來允許這兩部分在時(shí)間和空間兩者上分離(即,提前執(zhí)行、由不同機(jī)器執(zhí)行)。
[0052] 圖2B解說了通過使用外部代碼認(rèn)證來降低web瀏覽開銷的方法的另一方面250。 在框252中,瀏覽器可接收來自離線工具部分的輸入。在框254,瀏覽器可接收經(jīng)簽名預(yù)處 理代碼/內(nèi)容。在確定框256中,瀏覽器可確定在接收到的經(jīng)簽名預(yù)處理代碼/內(nèi)容中存在 任何有效簽名(例如,經(jīng)由確定所生成和嵌入的簽名匹配)。如果確定沒有有效簽名(即, 確定框256 = "否"),則在框258,瀏覽器可通過對所有接收到的代碼(例如,對于每個(gè)階 段)執(zhí)行完全操作來呈現(xiàn)頁面,如同未曾提供過預(yù)處理代碼。如果確定有有效簽名(即,確 定框256 = "是"),則在框260,瀏覽器可通過執(zhí)行預(yù)處理代碼并且僅執(zhí)行該代碼/內(nèi)容的 未簽名部分的完全驗(yàn)證來呈現(xiàn)頁面。在可任選框262,瀏覽器可可任選地為下一組執(zhí)行生成 簽名和結(jié)果,并將其存儲在本地或遠(yuǎn)程以供稍后檢索。各種已知簽名過程的任何一種可用 于生成簽名,這可基于經(jīng)處理代碼的內(nèi)容。通過對經(jīng)處理代碼簽名,接收機(jī)設(shè)備能夠通過在 從存儲器訪問代碼或作為所訪問的web頁面的一部分接收代碼時(shí)對該代碼執(zhí)行相同或類 似過程來驗(yàn)證簽名。
[0053] 圖3解說了通過使用代碼簽名方法以便按允許瀏覽器稍后在呈現(xiàn)相同頁面時(shí)確 定是否可重用經(jīng)處理代碼的方式來存儲該經(jīng)處理代碼以降低web瀏覽開銷的另一方面方 法300。在框302,瀏覽器可接收訪問特定web站點(diǎn)的請求。在確定框304中,瀏覽器可確 定在給定時(shí)間窗中該站點(diǎn)是否被首次訪問。如果瀏覽器確定是首次訪問(即,確定框304 ="是"),則在框306,瀏覽器可使用常規(guī)方法來處理web頁面內(nèi)容。在框308,瀏覽器可對 經(jīng)處理代碼簽名并包括或嵌入所生成的簽名。在框310,經(jīng)簽名的經(jīng)處理代碼可被存儲在正 在其上運(yùn)行web瀏覽器的設(shè)備的存儲器中。
[0054] 如果瀏覽器確定不是首次訪問web頁面(即,確定框304 ="否"),則在框312,可 從存儲器檢索經(jīng)簽名代碼。在框314,瀏覽器可驗(yàn)證包括在或嵌入在代碼中的簽名。這一過 程可涉及對web頁面內(nèi)容內(nèi)對應(yīng)的腳本執(zhí)行簽名過程(例如,散列函數(shù))以生成另一簽名。 在確定框316中,瀏覽器可確定該簽名是否匹配。如果該簽名是基于web頁面內(nèi)經(jīng)預(yù)處理 的腳本來生成的,則比較該簽名將使瀏覽器能快速確認(rèn)所存儲的先前處理的代碼是否是通 過執(zhí)行與當(dāng)前下載的web頁面中相同的腳本來生成的。如果瀏覽器確定該簽名匹配(即, 確定框316 ="是"),則在框320,瀏覽器可執(zhí)行經(jīng)簽名代碼,該經(jīng)簽名代碼已經(jīng)驗(yàn)證所存儲 的先前處理的代碼是通過處理與當(dāng)前web頁面內(nèi)容中相同的腳本來生成的。因此,簽名匹 配使瀏覽器能信任先前存儲的代碼的執(zhí)行將正確地呈現(xiàn)當(dāng)前web頁面。如果瀏覽器確定該 簽名不匹配(即,確定框316 ="否"),則在框318,瀏覽器可在框306進(jìn)行執(zhí)行腳本以呈現(xiàn) web頁面的操作,如同存儲器中沒有存儲先前處理的代碼。
[0055] 在進(jìn)一步方面,方法300的操作可與方法200的那些操作組合,從而web瀏覽器用 web頁面內(nèi)容驗(yàn)證并使用由離線工具提供的預(yù)處理代碼,存儲用簽名處理web頁面腳本的 結(jié)果,以及在其相關(guān)聯(lián)的簽名被驗(yàn)證時(shí)重用先前存儲的代碼。
[0056] 各種方面可被配置成使得代碼中不存在簽名向JavaScript引擎指示web頁面中 的腳本尚未被處理并且因此必須由瀏覽器處理。在一方面,該簽名可向?yàn)g覽器指示已經(jīng)使 用可用語言特征的僅服從于最優(yōu)化的受限子集來生成該代碼并且該代碼的執(zhí)行將不會導(dǎo) 致正使用的某些特征。在一方面,該簽名可向?yàn)g覽器指示已經(jīng)利用該可用語言特征的擴(kuò)增 子集(例如,類型檢查)來生成代碼并且瀏覽器能放棄執(zhí)行類似操作。
[0057] -方面,離線/外部工具可以是預(yù)編譯代碼的編譯器。
[0058] 應(yīng)理解,各種方面不涉及安全性,但是確保先前操作或最優(yōu)化的有效性。各種方面 的方法不僅關(guān)注可執(zhí)行代碼和JavaScript?代碼,并且可被應(yīng)用于瀏覽器的任何部分(代 碼和內(nèi)容兩者)。
[0059] 各種方面可將工具(例如,JavaScript編譯器、解析器、CSS處理器、布局引擎等) 劃分為離線和在線部分。離線部分可對代碼執(zhí)行一組操作并生成捕捉所執(zhí)行操作的一個(gè)或 多個(gè)簽名。在線部分可檢查(各)簽名并決定是否可跳過某個(gè)操作、可以按簡化或近似形 式執(zhí)行、可不同地執(zhí)行以達(dá)成更好的結(jié)果、和/或客戶端是否可另行利用預(yù)先驗(yàn)證的代碼。 若非如此,在線部分可再次對輸入(代碼或內(nèi)容)執(zhí)行相同操作(潛在地更少優(yōu)化的)。
[0060] 由各種方面提供的一個(gè)益處是使用簽名作為確定是否可在在線部分中跳過或簡 化某些操作的廉價(jià)方式。離線部分可在服務(wù)器或在客戶端上實(shí)現(xiàn)。在一方面,離線部分可 在客戶端上實(shí)現(xiàn)并在計(jì)算設(shè)備正空閑時(shí)執(zhí)行。
[0061] 各種方面可以在各種計(jì)算設(shè)備的任何一個(gè)計(jì)算設(shè)備上實(shí)現(xiàn)。圖4中解說了移動計(jì) 算設(shè)備的示例,而圖5中解說了筆記本計(jì)算機(jī)的示例。典型的移動計(jì)算設(shè)備400將具有圖4 中所解說的共有組件。例如,移動計(jì)算設(shè)備400可包括耦合至內(nèi)部存儲器402的處理器401 以及觸摸表面輸入設(shè)備/顯示器403。觸摸屏顯示器403,諸如,諸如電阻感測式觸摸屏、電 容感測式觸摸屏、紅外感測式觸摸屏、聲學(xué)/壓電感測式觸摸屏,或諸如此類。各種方面不 限于任何特定類型的觸摸屏顯示器403或觸摸板技術(shù)。另外,計(jì)算設(shè)備400可具有用于發(fā) 送和接收電磁輻射的天線404,該天線404與耦合至處理器401的無線數(shù)據(jù)鏈路和/或蜂窩 電話收發(fā)機(jī)405相連接。計(jì)算設(shè)備400還可包括用于接收用戶輸入的物理按鈕408。
[0062] 盡管各種方面可為移動計(jì)算設(shè)備提供顯著的性能增強(qiáng),但其它形式的計(jì)算設(shè)備, 包括個(gè)人計(jì)算機(jī)和膝上型計(jì)算機(jī)還可從動態(tài)語言腳本的預(yù)解析中獲益。此類計(jì)算設(shè)備一般 包括圖5中解說的組件,圖5解說了示例個(gè)人膝上型計(jì)算機(jī)500。此種個(gè)人計(jì)算機(jī)500 - 般包括耦合至易失性存儲器502和大容量非易失性存儲器(諸如盤驅(qū)動器503)的處理器 501。 計(jì)算機(jī)500還可包括耦合至處理器501的壓縮盤(⑶)和/或DVD驅(qū)動器504。計(jì)算 機(jī)設(shè)備500還可包括耦合至處理器401的用于建立數(shù)據(jù)連接或接收外部存儲器設(shè)備的數(shù)個(gè) 連接器端口,諸如用于將處理器401耦合至網(wǎng)絡(luò)的網(wǎng)絡(luò)連接電路505。計(jì)算機(jī)500可進(jìn)一步 耦合至鍵盤508、定點(diǎn)設(shè)備(諸如鼠標(biāo)510)和顯示器509,如計(jì)算機(jī)領(lǐng)域中公知的。
[0063] 各種方面還可實(shí)現(xiàn)在各種市售的服務(wù)器設(shè)備中的任何服務(wù)器設(shè)備上,諸如圖6中 解說的服務(wù)器600。此種服務(wù)器600 -般包括處理器601并且可包括多個(gè)處理器系統(tǒng)611、 621、631,其中一個(gè)或多個(gè)可以是或包括多核處理器。處理器601可耦合至易失性存儲器 602和大容量非易失性存儲器(諸如盤驅(qū)動器603)。服務(wù)器600還可包括耦合至處理器 601的軟盤驅(qū)動器、壓縮盤(⑶)或DVD盤驅(qū)動器606。服務(wù)器600還可包括耦合至處理器 601的用于建立與網(wǎng)絡(luò)605(諸如耦合到其他廣播系統(tǒng)計(jì)算機(jī)和服務(wù)器的局域網(wǎng)絡(luò))的數(shù)據(jù) 連接的網(wǎng)絡(luò)接入端口 604。
[0064] 處理器401、501、601可以是能通過軟件指令(應(yīng)用)配置以執(zhí)行包括本文所述各 種方面的功能在內(nèi)的各種功能的任何可編程微處理器、微型計(jì)算機(jī)或一個(gè)或多個(gè)多處理器 芯片。在一些移動設(shè)備中,可提供多個(gè)處理器401、501、601,諸如一個(gè)處理器專用于無線通 信功能并且一個(gè)處理器專用于運(yùn)行其他應(yīng)用。通常,在軟件應(yīng)用被訪問并被加載到處理器 401、501、601中之前,這些軟件應(yīng)用可被存儲在內(nèi)部存儲器402、502、602中。在一些移動設(shè) 備中,處理器401、501、601可包括足以存儲應(yīng)用軟件指令的內(nèi)部存儲器。在一些移動設(shè)備 中,安全存儲器可以在耦合至處理器401、501、601的單獨(dú)存儲器芯片中。內(nèi)部存儲器402、 502、 602可以是易失性或非易失性存儲器(諸如閃存),或這兩者的混合。出于本說明書的 目的,對存儲器的一般性引述是指可由處理器401、501、601訪問的所有存儲器,包括內(nèi)部 存儲器402、502、602、插入移動設(shè)備的可移動存儲器、以及處理器401、501、601自身內(nèi)的存 儲器。
[0065] 上述方法描述和過程流程圖僅作為解說性示例提供,且并非旨在要求或暗示各種 方面的框必須按所給出的次序來執(zhí)行。如將由本領(lǐng)域技術(shù)人員領(lǐng)會的,前述各方面中的步 驟次序可按任何次序來執(zhí)行。諸如"其后"、"隨后"、"接著"等的措辭并非旨在限定框的次 序;這些措辭僅是簡單地用以指引讀者遍歷方法的描述。進(jìn)一步地,對單數(shù)形式的權(quán)利要求 元素的任何引述,例如使用冠詞"一"、"某"或"該"的引述不應(yīng)解釋為將該元素限定為單數(shù)。
[0066] 結(jié)合本文中所公開的各方面來描述的各種解說性邏輯框、模塊、電路、和算法步驟 可實(shí)現(xiàn)為電子硬件、計(jì)算機(jī)軟件、或這兩者的組合。為清楚地解說硬件與軟件的這一可互換 性,各種解說性組件、塊、模塊、電路、和步驟在上面是以其功能性的形式作一般化描述的。 此類功能性是被實(shí)現(xiàn)為硬件還是軟件取決于具體應(yīng)用和施加于整體系統(tǒng)的設(shè)計(jì)約束。技術(shù) 人員對于每種特定應(yīng)用可用不同的方式來實(shí)現(xiàn)所描述的功能性,但這樣的實(shí)現(xiàn)決策不應(yīng)被 解讀成導(dǎo)致脫離了本發(fā)明的范圍。
[0067] 用以實(shí)現(xiàn)結(jié)合本文中公開的方面描述的各種例示性邏輯、邏輯框、模塊、以及電路 的硬件可利用通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣 列(FPGA)或其他可編程邏輯器件、分立的門或晶體管邏輯、分立的硬件組件、或其設(shè)計(jì)成 執(zhí)行本文中描述的功能的任何組合來實(shí)現(xiàn)或執(zhí)行。通用處理器可以是微處理器,但在替換 方案中,處理器可以是任何常規(guī)的處理器、控制器、微控制器、或狀態(tài)機(jī)。處理器還可以被實(shí) 現(xiàn)為計(jì)算設(shè)備的組合,例如DSP與微處理器的組合、多個(gè)微處理器、與DSP核心協(xié)同的一個(gè) 或多個(gè)微處理器、或任何其他此類配置。替代地,一些步驟或方法可由專用于給定功能的電 路系統(tǒng)來執(zhí)打。
[〇〇68] 在一個(gè)或多個(gè)示例性方面中,所描述的功能可在硬件、軟件、固件或其任何組合中 實(shí)現(xiàn)。如果在軟件中實(shí)現(xiàn),則各功能可以作為一條或多條指令或代碼存儲在非易失計(jì)算機(jī) 可讀或處理器可讀存儲介質(zhì)上或藉其進(jìn)行傳送。本文中公開的方法或算法的步驟可在處理 器可執(zhí)行軟件模塊中實(shí)施,該處理器可執(zhí)行軟件模塊可駐留在非瞬態(tài)計(jì)算機(jī)可讀或處理器 可讀存儲介質(zhì)上。非瞬態(tài)處理器可讀和計(jì)算機(jī)可讀存儲介質(zhì)可以是能被計(jì)算機(jī)或計(jì)算設(shè)備 的處理器訪問的任何可用介質(zhì)。作為示例而非限定,此類非瞬態(tài)處理器可讀或計(jì)算機(jī)可讀 介質(zhì)可包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲、磁盤存儲或其它磁存儲設(shè)備、或者 可用于攜帶或存儲指令或數(shù)據(jù)結(jié)構(gòu)形式的期望程序代碼且可由計(jì)算機(jī)或計(jì)算設(shè)備的處理 器訪問的任何其它介質(zhì)。如本文中所使用的盤和碟,包括壓縮碟(⑶)、激光碟、光碟、數(shù)字通 用碟(DVD)、軟盤和藍(lán)光碟,其中盤(disk)往往以磁的方式再現(xiàn)數(shù)據(jù)而碟(disc)利用激光 以光學(xué)方式再現(xiàn)數(shù)據(jù)。以上的組合也應(yīng)被包括在非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。另外,方 法或算法的操作可作為一條代碼和/或指令或者代碼和/或指令的任何組合或集合而駐留 在可被納入計(jì)算機(jī)程序產(chǎn)品中的非瞬態(tài)處理器可讀介質(zhì)和/或非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)上。 [〇〇69] 提供了以上對所公開的方面的描述是為了使得本領(lǐng)域任何技術(shù)人員皆能夠制作 或使用本發(fā)明。對這些方面的各種修改容易為本領(lǐng)域技術(shù)人員所顯見,并且在此所定義的 普適原理可被應(yīng)用于其它方面而不會脫離本發(fā)明的精神或范圍。由此,本發(fā)明并非旨在限 定于本文中示出的方面,而是應(yīng)被授予與所附權(quán)利要求和本文中公開的原理和新穎性特征 一致的最廣義的范圍。
【權(quán)利要求】
1. 一種用于處理瀏覽器中的內(nèi)容的方法,包括: 在所述瀏覽器中接收包括一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容,每個(gè)預(yù)執(zhí)行操作與一簽名相 關(guān)聯(lián); 使用簽名驗(yàn)證過程來驗(yàn)證與所述預(yù)執(zhí)行操作的至少一個(gè)相關(guān)聯(lián)的所述簽名; 當(dāng)所述簽名驗(yàn)證過程確認(rèn)所述簽名與所述預(yù)執(zhí)行操作相關(guān)聯(lián)時(shí)執(zhí)行第一操作;以及 當(dāng)所述簽名驗(yàn)證過程不確認(rèn)所述簽名與所述預(yù)執(zhí)行操作相關(guān)聯(lián)時(shí)執(zhí)行第二操作。
2. 如權(quán)利要求1所述的方法,其特征在于,執(zhí)行第一操作包括結(jié)合所述預(yù)執(zhí)行操作。
3. 如權(quán)利要求1所述的方法,其特征在于,執(zhí)行第一操作包括跳過與所述預(yù)執(zhí)行操作 相關(guān)聯(lián)的瀏覽器操作。
4. 如權(quán)利要求1所述的方法,其特征在于,執(zhí)行第一操作包括更改與所述預(yù)執(zhí)行操作 相關(guān)聯(lián)的瀏覽器操作。
5. 如權(quán)利要求1所述的方法,其特征在于,執(zhí)行第二操作包括執(zhí)行與所述預(yù)執(zhí)行操作 相關(guān)聯(lián)的瀏覽器操作。
6. 如權(quán)利要求1所述的方法,其特征在于,使用簽名驗(yàn)證過程來驗(yàn)證與所述預(yù)執(zhí)行操 作相關(guān)聯(lián)的簽名包括確定與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作是否可被跳過或不同地 執(zhí)行以達(dá)成更好的結(jié)果。
7. 如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括: 對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作;以及 對所述預(yù)執(zhí)行操作簽名。
8. 如權(quán)利要求7所述的方法,其特征在于,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作 以生成至少一個(gè)預(yù)執(zhí)行操作包括在離線工具中執(zhí)行工具操作,所述方法進(jìn)一步包括: 將經(jīng)簽名的預(yù)執(zhí)行操作發(fā)送給所述瀏覽器。
9. 如權(quán)利要求7所述的方法,其特征在于,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作 以生成至少一個(gè)預(yù)執(zhí)行操作包括在服務(wù)器中執(zhí)行工具操作,所述方法進(jìn)一步包括: 將經(jīng)簽名的預(yù)執(zhí)行操作發(fā)送給正在其上執(zhí)行所述瀏覽器的計(jì)算設(shè)備。
10. 如權(quán)利要求7所述的方法,其特征在于,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操 作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成JavaScript。
11. 如權(quán)利要求7所述的方法,其特征在于,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操 作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成級聯(lián)樣式表。
12. 如權(quán)利要求7所述的方法,其特征在于,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操 作以生成至少一個(gè)預(yù)執(zhí)行操作包括執(zhí)行源對源變換。
13. 如權(quán)利要求7所述的方法,其特征在于,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操 作包括標(biāo)記級聯(lián)樣式表的未使用的各部分。
14. 如權(quán)利要求7所述的方法,其特征在于,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操 作以生成至少一個(gè)預(yù)執(zhí)行操作包括對與所述web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng)的代碼執(zhí) 行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作。
15. 如權(quán)利要求7所述的方法,其特征在于,對所述預(yù)處理代碼簽名由驗(yàn)證器來完成。
16. 如權(quán)利要求7所述的方法,其特征在于,對所述預(yù)處理代碼簽名包括提供證實(shí)所述 預(yù)處理操作中已經(jīng)遵循某些規(guī)則的簽名。
17. 如權(quán)利要求7所述的方法,其特征在于,對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操 作以生成至少一個(gè)預(yù)執(zhí)行操作包括在所述瀏覽器內(nèi)執(zhí)行工具操作。
18. 如權(quán)利要求17所述的方法,其特征在于,接收包括各自與簽名相關(guān)聯(lián)的一個(gè)或多 個(gè)預(yù)執(zhí)行操作的內(nèi)容包括從正在其上執(zhí)行所述瀏覽器的計(jì)算設(shè)備的存儲器中檢索經(jīng)簽名 的預(yù)處理代碼。
19. 如權(quán)利要求18所述的方法,其特征在于,進(jìn)一步包括將所述第一或第二操作的結(jié) 果存儲在所述計(jì)算設(shè)備的所述存儲器中。
20. 如權(quán)利要求17所述的方法,其特征在于,對與所述web頁面內(nèi)容中的可執(zhí)行腳本對 應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括預(yù)處理所述web頁面內(nèi)容的一部 分。
21. 如權(quán)利要求20所述的方法,其特征在于,進(jìn)一步包括: 將所述代碼的所述經(jīng)簽名的預(yù)處理部分包括在web頁面內(nèi)容中;以及 將所述web頁面內(nèi)容發(fā)送給正在其上操作所述瀏覽器的計(jì)算設(shè)備。
22. -種計(jì)算設(shè)備,包括: 用于接收包括一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容的裝置,每個(gè)預(yù)執(zhí)行操作與一簽名相關(guān) 聯(lián); 用于使用簽名驗(yàn)證過程來驗(yàn)證與所述預(yù)執(zhí)行操作的至少一個(gè)相關(guān)聯(lián)的所述簽名的裝 置; 用于當(dāng)所述簽名驗(yàn)證過程確認(rèn)所述簽名與所述預(yù)執(zhí)行操作相關(guān)聯(lián)時(shí)執(zhí)行第一操作的 裝置;以及 用于當(dāng)所述簽名驗(yàn)證過程不確認(rèn)所述簽名與所述預(yù)執(zhí)行操作相關(guān)聯(lián)時(shí)執(zhí)行第二操作 的裝置。
23. 如權(quán)利要求22所述的計(jì)算設(shè)備,其特征在于,用于執(zhí)行第一操作的裝置包括用于 結(jié)合所述預(yù)執(zhí)行操作的裝置。
24. 如權(quán)利要求22所述的計(jì)算設(shè)備,其特征在于,用于執(zhí)行第一操作的裝置包括用于 跳過與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作的裝置。
25. 如權(quán)利要求22所述的計(jì)算設(shè)備,其特征在于,用于執(zhí)行第一操作的裝置包括用于 更改與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作的裝置。
26. 如權(quán)利要求22所述的計(jì)算設(shè)備,其特征在于,用于執(zhí)行第二操作的裝置包括用于 執(zhí)行與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作的裝置。
27. 如權(quán)利要求22所述的計(jì)算設(shè)備,其特征在于,用于使用簽名驗(yàn)證過程來驗(yàn)證與所 述預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名的裝置包括用于確定與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作 是否可被跳過或不同地執(zhí)行以達(dá)成更好的結(jié)果的裝置。
28. 如權(quán)利要求22所述的計(jì)算設(shè)備,其特征在于,進(jìn)一步包括: 用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置; 以及 用于對所述預(yù)執(zhí)行操作簽名的裝置。
29. 如權(quán)利要求28所述的計(jì)算設(shè)備,其特征在于,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí) 行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于生成JavaScript的裝置。
30. 如權(quán)利要求28所述的計(jì)算設(shè)備,其特征在于,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí) 行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于生成級聯(lián)樣式表的裝置。
31. 如權(quán)利要求28所述的計(jì)算設(shè)備,其特征在于,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí) 行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于執(zhí)行源對源變換的裝置。
32. 如權(quán)利要求28所述的計(jì)算設(shè)備,其特征在于,用于對與所述web頁面內(nèi)容對應(yīng)的代 碼執(zhí)行工具操作的裝置包括用于標(biāo)記級聯(lián)樣式表的未使用的各部分的裝置。
33. 如權(quán)利要求28所述的計(jì)算設(shè)備,其中用于對所述預(yù)處理代碼簽名的裝置包括用于 在所述計(jì)算設(shè)備上執(zhí)行的驗(yàn)證器應(yīng)用中對所述預(yù)處理代碼簽名的裝置。
34. 如權(quán)利要求28所述的計(jì)算設(shè)備,其特征在于,用于對所述預(yù)處理代碼簽名的裝置 包括用于生成證實(shí)所述預(yù)處理操作中已經(jīng)遵循某些規(guī)則的簽名的裝置。
35. 如權(quán)利要求28所述的計(jì)算設(shè)備,其特征在于,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí) 行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于在所述計(jì)算設(shè)備上執(zhí)行的瀏覽器 應(yīng)用內(nèi)執(zhí)行工具操作的裝置。
36. 如權(quán)利要求35所述的計(jì)算設(shè)備,其特征在于,用于接收包括各自與簽名相關(guān)聯(lián)的 一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容的裝置包括用于從存儲器中檢索經(jīng)簽名的預(yù)處理代碼的裝 置。
37. 如權(quán)利要求36所述的計(jì)算設(shè)備,其特征在于,進(jìn)一步包括用于存儲所述第一或第 二操作的結(jié)果的裝置。
38. 如權(quán)利要求28所述的計(jì)算設(shè)備,其特征在于,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí) 行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于對與所述web頁面內(nèi)容中的可執(zhí) 行腳本對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置。
39. 如權(quán)利要求38所述的計(jì)算設(shè)備,其特征在于,用于對與所述web頁面內(nèi)容中的可執(zhí) 行腳本對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于預(yù)處理所述 web頁面內(nèi)容的一部分的裝置。
40. -種服務(wù)器,包括: 用于對與web頁面內(nèi)容的各部分對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操 作的裝置; 用于對所生成的預(yù)執(zhí)行操作簽名的裝置; 用于將經(jīng)簽名的預(yù)處理操作包括在所述web頁面內(nèi)容中的裝置;以及 用于將所述web頁面內(nèi)容發(fā)送給計(jì)算設(shè)備的裝置。
41. 如權(quán)利要求40所述的服務(wù)器,其特征在于,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行 工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于生成JavaScript的裝置。
42. 如權(quán)利要求40所述的服務(wù)器,其特征在于,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行 工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于生成級聯(lián)樣式表的裝置。
43. 如權(quán)利要求40所述的服務(wù)器,其特征在于,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行 工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于執(zhí)行源對源變換的裝置。
44. 如權(quán)利要求40所述的服務(wù)器,其特征在于,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行 工具操作的裝置包括用于標(biāo)記級聯(lián)樣式表的未使用的各部分的裝置。
45. 如權(quán)利要求40所述的服務(wù)器,其特征在于,用于對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行 工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置包括用于對與所述web頁面內(nèi)容中的可執(zhí)行 腳本對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作的裝置。
46. 如權(quán)利要求40所述的服務(wù)器,其特征在于,用于對所述預(yù)處理代碼簽名的裝置包 括用于提供證實(shí)所述預(yù)處理操作中已經(jīng)遵循某些規(guī)則的簽名的裝置。
47. -種計(jì)算設(shè)備,包括: 存儲器;以及 耦合至所述存儲器的處理器,其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行包括以 下操作的操作: 接收包括一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容,每個(gè)預(yù)執(zhí)行操作與一簽名相關(guān)聯(lián); 使用簽名驗(yàn)證過程來驗(yàn)證與所述預(yù)執(zhí)行操作的至少一個(gè)相關(guān)聯(lián)的所述簽名; 當(dāng)所述簽名驗(yàn)證過程確認(rèn)所述簽名與所述預(yù)執(zhí)行操作相關(guān)聯(lián)時(shí)執(zhí)行第一操作;以及 當(dāng)所述簽名驗(yàn)證過程不確認(rèn)所述簽名與所述預(yù)執(zhí)行操作相關(guān)聯(lián)時(shí)執(zhí)行第二操作。
48. 如權(quán)利要求47所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指 令以執(zhí)行操作以使得執(zhí)行第一操作包括結(jié)合所述預(yù)執(zhí)行操作。
49. 如權(quán)利要求47所述的身佩式計(jì)算設(shè)備,其特征在于,所述處理器用處理器可執(zhí)行 指令配置成執(zhí)行操作以使得執(zhí)行第一操作包括跳過與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操 作。
50. 如權(quán)利要求47所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指 令以執(zhí)行操作以使得執(zhí)行第一操作包括更改與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作。
51. 如權(quán)利要求47所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指 令以執(zhí)行操作以使得執(zhí)行第二操作包括執(zhí)行與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作。
52. 如權(quán)利要求47所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指 令以執(zhí)行操作以使得使用簽名驗(yàn)證過程來驗(yàn)證與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名包括確定 與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作是否可被跳過或不同地執(zhí)行以達(dá)成更好的結(jié)果。
53. 如權(quán)利要求47所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指 令以執(zhí)行進(jìn)一步包括以下操作的操作: 對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作;以及 對所述預(yù)執(zhí)行操作簽名。
54. 如權(quán)利要求53所述的計(jì)算設(shè)備,其特征在于,所述處理器被配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí) 行操作包括生成JavaScript。
55. 如權(quán)利要求53所述的計(jì)算設(shè)備,其特征在于,所述處理器被配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí) 行操作包括生成級聯(lián)樣式表。
56. 如權(quán)利要求53所述的計(jì)算設(shè)備,其特征在于,所述處理器被配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí) 行操作包括執(zhí)行源對源變換。
57. 如權(quán)利要求53所述的計(jì)算設(shè)備,其特征在于,所述處理器被配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作包括標(biāo)記級聯(lián)樣式表 的未使用的各部分。
58. 如權(quán)利要求53所述的計(jì)算設(shè)備,其特征在于,所述處理器配置有處理器可執(zhí)行指 令以執(zhí)行操作以使得對所述預(yù)處理代碼簽名包括在正在所述計(jì)算設(shè)備上執(zhí)行的驗(yàn)證器中 對所述預(yù)處理代碼簽名。
59. 如權(quán)利要求53所述的計(jì)算設(shè)備,其特征在于,所述處理器被配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得對所述預(yù)處理代碼簽名包括提供證實(shí)所述預(yù)處理操作中已經(jīng)遵循 某些規(guī)則的簽名。
60. 如權(quán)利要求53所述的計(jì)算設(shè)備,其特征在于,所述處理器被配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí) 行操作包括在所述計(jì)算設(shè)備上執(zhí)行的瀏覽器內(nèi)執(zhí)行工具操作。
61. 如權(quán)利要求60所述的計(jì)算設(shè)備,其特征在于,所述處理器被配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得接收包括各自與簽名相關(guān)聯(lián)的一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容包括 從所述存儲器中檢索經(jīng)簽名的預(yù)處理代碼。
62. 如權(quán)利要求61所述的計(jì)算設(shè)備,其特征在于,所述處理器被配置有處理器可執(zhí)行 指令以執(zhí)行進(jìn)一步包括將所述第一或第二操作的結(jié)果存儲在所述存儲器中的操作。
63. 如權(quán)利要求53所述的計(jì)算設(shè)備,其特征在于,所述處理器被配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí) 行操作包括對與所述web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng)的代碼執(zhí)行工具操作以生成至少 一個(gè)預(yù)執(zhí)行操作。
64. 如權(quán)利要求63所述的計(jì)算設(shè)備,其特征在于,所述處理器被配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得對與所述web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng)的代碼執(zhí)行工具操作 以生成至少一個(gè)預(yù)執(zhí)行操作包括預(yù)處理所述web頁面內(nèi)容的一部分。
65. -種服務(wù)器,包括: 存儲器;以及 耦合至所述存儲器的處理器,其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行包括以 下操作的操作: 對與web頁面內(nèi)容的各部分對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作; 對所生成的預(yù)執(zhí)行操作簽名; 將經(jīng)簽名的預(yù)處理操作包括在所述web頁面內(nèi)容中;以及 將包括所述經(jīng)簽名的預(yù)處理操作的所述web頁面內(nèi)容發(fā)送給計(jì)算設(shè)備。
66. 如權(quán)利要求65所述的服務(wù)器,其特征在于,所述處理器配置有處理器可執(zhí)行指令 以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操 作包括生成JavaScript。
67. 如權(quán)利要求65所述的服務(wù)器,其特征在于,所述處理器被配置有處理器可執(zhí)行指 令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行 操作包括生成級聯(lián)樣式表。
68. 如權(quán)利要求65所述的服務(wù)器,其特征在于,所述處理器被配置有處理器可執(zhí)行指 令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行 操作包括執(zhí)行源對源變換。
69. 如權(quán)利要求65所述的服務(wù)器,其特征在于,所述處理器被配置有處理器可執(zhí)行指 令以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作包括標(biāo)記級聯(lián)樣式表的 未使用的各部分。
70. 如權(quán)利要求65所述的服務(wù)器,其特征在于,所述處理器配置有處理器可執(zhí)行指令 以執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操 作包括對與所述web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè) 預(yù)執(zhí)行操作。
71. 如權(quán)利要求65所述的服務(wù)器,其特征在于,所述處理器被配置有處理器可執(zhí)行指 令以執(zhí)行操作以使得對所述預(yù)處理代碼簽名包括生成證實(shí)所述預(yù)處理操作中已經(jīng)遵循某 些規(guī)則的簽名。
72. -種其上存儲有處理器可執(zhí)行軟件指令的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),所述處理 器可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作,所述操作包括: 接收包括一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容,每個(gè)預(yù)執(zhí)行操作與一簽名相關(guān)聯(lián); 使用簽名驗(yàn)證過程來驗(yàn)證與所述預(yù)執(zhí)行操作的至少一個(gè)相關(guān)聯(lián)的所述簽名; 當(dāng)所述簽名驗(yàn)證過程確認(rèn)所述簽名與所述預(yù)執(zhí)行操作相關(guān)聯(lián)時(shí)執(zhí)行第一操作;以及 當(dāng)所述簽名驗(yàn)證過程不確認(rèn)所述簽名與所述預(yù)執(zhí)行操作相關(guān)聯(lián)時(shí)執(zhí)行第二操作。
73. 如權(quán)利要求72所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得執(zhí)行第一操作包括結(jié)合所述預(yù)處理操 作。
74. 如權(quán)利要求72所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得執(zhí)行第一操作包括跳過與所述預(yù)處理 操作相關(guān)聯(lián)的瀏覽器操作。
75. 如權(quán)利要求72所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得執(zhí)行第一操作包括更改與所述預(yù)處理 操作相關(guān)聯(lián)的瀏覽器操作。
76. 如權(quán)利要求72所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得執(zhí)行第二操作包括執(zhí)行與所述預(yù)處理 操作相關(guān)聯(lián)的瀏覽器操作。
77. 如權(quán)利要求72所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得使用簽名驗(yàn)證過程來驗(yàn)證與預(yù)執(zhí)行操 作相關(guān)聯(lián)的簽名包括確定與預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作是否可被跳過或不同地執(zhí)行 以達(dá)成更好的結(jié)果。
78. 如權(quán)利要求72所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行進(jìn)一步包括以下操作的操作: 對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作;以及 對所述預(yù)執(zhí)行操作簽名。
79. 如權(quán)利要求78所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工 具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成JavaScript。
80. 如權(quán)利要求78所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工 具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成級聯(lián)樣式表。
81. 如權(quán)利要求78所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工 具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括執(zhí)行源對源變換。
82. 如權(quán)利要求78所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工 具操作包括標(biāo)記級聯(lián)樣式表的未使用的各部分。
83. 如權(quán)利要求78所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對所述預(yù)處理代碼簽名包括在正在其 上執(zhí)行驗(yàn)證器的計(jì)算設(shè)備中對所述預(yù)處理代碼簽名。
84. 如權(quán)利要求78所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對所述預(yù)處理代碼簽名包括提供證實(shí) 預(yù)處理操作中已經(jīng)遵循某些規(guī)則的簽名。
85. 如權(quán)利要求78所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工 具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括在瀏覽器內(nèi)執(zhí)行工具操作。
86. 如權(quán)利要求85所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得接收包括各自與簽名相關(guān)聯(lián)的一個(gè)或 多個(gè)預(yù)執(zhí)行操作的內(nèi)容包括從正在其上執(zhí)行所述瀏覽器的計(jì)算設(shè)備的存儲器中檢索經(jīng)簽 名的預(yù)處理代碼。
87. 如權(quán)利要求86所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行進(jìn)一步包括以下操作的操作: 將所述第一或第二操作的結(jié)果存儲在所述計(jì)算設(shè)備的所述存儲器中。
88. 如權(quán)利要求78所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工 具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括對與所述web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng)的代 碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作。
89. 如權(quán)利要求88所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的處理器 可執(zhí)行軟件指令被配置成使處理器執(zhí)行操作以使得對與web頁面內(nèi)容中的可執(zhí)行腳本對 應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括預(yù)處理所述web頁面內(nèi)容的一部 分。
90. -種其上存儲有服務(wù)器可執(zhí)行軟件指令的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),所述服務(wù) 器可執(zhí)行軟件指令被配置成使服務(wù)器執(zhí)行操作,所述操作包括: 對與web頁面內(nèi)容的各部分對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作; 對所生成的預(yù)執(zhí)行操作簽名; 將經(jīng)簽名的預(yù)處理操作包括在所述web頁面內(nèi)容中;以及 將包括所述經(jīng)簽名的預(yù)處理操作的所述web頁面內(nèi)容發(fā)送給計(jì)算設(shè)備。
91. 如權(quán)利要求90所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),所存儲的服務(wù)器可執(zhí)行軟件指 令被配置成使所述服務(wù)器執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以 生成至少一個(gè)預(yù)執(zhí)行操作包括生成JavaScript。
92. 如權(quán)利要求90所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的服務(wù)器 可執(zhí)行軟件指令被配置成使所述服務(wù)器執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí) 行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括生成級聯(lián)樣式表。
93. 如權(quán)利要求90所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的服務(wù)器 可執(zhí)行軟件指令被配置成使所述服務(wù)器執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí) 行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括執(zhí)行源對源變換。
94. 如權(quán)利要求90所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的服務(wù)器 可執(zhí)行軟件指令被配置成使所述服務(wù)器執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí) 行工具操作包括標(biāo)記級聯(lián)樣式表的未使用的各部分。
95. 如權(quán)利要求90所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的服務(wù)器 可執(zhí)行軟件指令被配置成使所述服務(wù)器執(zhí)行操作以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí) 行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括對與所述web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng) 的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作。
96. 如權(quán)利要求90所述的非瞬態(tài)計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所存儲的服務(wù)器 可執(zhí)行軟件指令配置成使所述服務(wù)器執(zhí)行操作以使得對所述預(yù)處理代碼簽名包括提供證 實(shí)預(yù)處理操作中已經(jīng)遵循某些規(guī)則的簽名。
97. -種系統(tǒng),包括: 客戶端設(shè)備,包括客戶端存儲器和耦合至所述客戶端存儲器的客戶端處理器;以及 服務(wù)器,包括服務(wù)器存儲器和耦合至所述服務(wù)器存儲器的服務(wù)器處理器, 其中所述客戶端處理器配置有處理器可執(zhí)行指令以執(zhí)行包括以下操作的操作: 接收包括一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容,每個(gè)預(yù)執(zhí)行操作與一簽名相關(guān)聯(lián); 使用簽名驗(yàn)證過程來驗(yàn)證與所述預(yù)執(zhí)行操作的至少一個(gè)相關(guān)聯(lián)的所述簽名; 當(dāng)所述簽名驗(yàn)證過程確認(rèn)所述簽名與所述預(yù)執(zhí)行操作相關(guān)聯(lián)時(shí)執(zhí)行第一操作;以及 當(dāng)所述簽名驗(yàn)證過程不確認(rèn)所述簽名與所述預(yù)執(zhí)行操作相關(guān)聯(lián)時(shí)執(zhí)行第二操作,以及 其中所述服務(wù)器處理器配置有服務(wù)器可執(zhí)行指令以執(zhí)行包括以下操作的操作: 對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作; 對所述預(yù)執(zhí)行操作簽名; 將經(jīng)簽名的預(yù)處理操作包括在所述web頁面內(nèi)容中;以及 將包括所述經(jīng)簽名的預(yù)處理操作的所述web頁面內(nèi)容發(fā)送給所述計(jì)算設(shè)備。
98. 如權(quán)利要求97所述的系統(tǒng),其特征在于,所述客戶端處理器配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得接收包括各自與簽名相關(guān)聯(lián)的一個(gè)或多個(gè)預(yù)執(zhí)行操作的內(nèi)容包括 從所述服務(wù)器接收包括所述經(jīng)簽名的預(yù)處理操作的web頁面內(nèi)容。
99. 如權(quán)利要求97所述的系統(tǒng),其特征在于,所述客戶端處理器配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得執(zhí)行第一操作包括結(jié)合所述預(yù)執(zhí)行操作。
100. 如權(quán)利要求97所述的系統(tǒng),其特征在于,所述客戶端處理器配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得執(zhí)行第一操作包括跳過與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作。
101. 如權(quán)利要求97所述的系統(tǒng),其特征在于,所述客戶端處理器配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得執(zhí)行第一操作包括更改與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作。
102. 如權(quán)利要求97所述的系統(tǒng),其特征在于,所述客戶端處理器配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得執(zhí)行第二操作包括執(zhí)行與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作。
103. 如權(quán)利要求97所述的系統(tǒng),其特征在于,所述客戶端處理器配置有處理器可執(zhí)行 指令以執(zhí)行操作以使得使用簽名驗(yàn)證過程來驗(yàn)證與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的簽名包括確 定與所述預(yù)執(zhí)行操作相關(guān)聯(lián)的瀏覽器操作是否可被跳過或不同地執(zhí)行以達(dá)成更好的結(jié)果。
104. 如權(quán)利要求97所述的系統(tǒng),其特征在于,所述服務(wù)器處理器配置有服務(wù)器可執(zhí)行 指令以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括 生成 JavaScript。
105. 如權(quán)利要求97所述的系統(tǒng),其特征在于,所述服務(wù)器處理器配置有服務(wù)器可執(zhí)行 指令以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括 生成級聯(lián)樣式表。
106. 如權(quán)利要求97所述的系統(tǒng),其特征在于,所述服務(wù)器處理器配置有服務(wù)器可執(zhí)行 指令以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括 執(zhí)行源對源變換。
107. 如權(quán)利要求97所述的系統(tǒng),其特征在于,所述服務(wù)器處理器被配置有服務(wù)器可執(zhí) 行指令以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作包括標(biāo)記級聯(lián)樣式表的未使用 的各部分。
108. 如權(quán)利要求97所述的系統(tǒng),其特征在于,所述服務(wù)器處理器配置有服務(wù)器可執(zhí)行 指令以使得對與web頁面內(nèi)容對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行操作包括 對與所述web頁面內(nèi)容中的可執(zhí)行腳本對應(yīng)的代碼執(zhí)行工具操作以生成至少一個(gè)預(yù)執(zhí)行 操作。
109. 如權(quán)利要求97所述的系統(tǒng),其特征在于,所述服務(wù)器處理器被配置有服務(wù)器可執(zhí) 行指令以使得對所述預(yù)處理代碼簽名包括生成證實(shí)所述預(yù)處理操作中已經(jīng)遵循某些規(guī)則 的簽名。
【文檔編號】G06F21/64GK104094257SQ201380006540
【公開日】2014年10月8日 申請日期:2013年1月8日 優(yōu)先權(quán)日:2012年1月26日
【發(fā)明者】L·西澤, G·C·卡希瓦爾, M·H·瑞沙迪 申請人:高通股份有限公司