Warning:
This wiki has been archived and is now read-only.
HTML5/fetching-resources
From HTML5 Chinese Interest Group Wiki
< HTML5
获取资源
协议的概念
加密的HTTP及安全考量
決定資源的類型
使用者代理獲得、解讀 Content-Type 後設資料的方式必須不與媒體型態嗅探規範的要求有所衝突。[MIMESNIFF]
使用者代理尋找資源的嗅探型態的方式必須不與媒體形態嗅探規範定義的尋找相關八位元組序列「嗅探型態」的要求有所衝突。[MIMESNIFF]
媒體形態嗅探規範也定義針對圖像嗅探的規則與區分資源是文字還是二進制檔案的規則。這兩個規則皆回傳 MIME 型態。[MIMESNIFF]
準確遵守媒體形態嗅探規範的規則非常重要。使用者代理用來偵測內容型態的演算法與伺服器預期的不一樣的話,會有安全疑慮。詳細情形請參考媒體形態嗅探規範。[MIMESNIFF]
由 meta
元素萃取編碼
給定一個字串 s,以下是由 meta
元素萃取編碼的演算法。本演算法回傳一個編碼或是空值。
- 設位置為指向 s 的指針,一開始指向字串的起點。
- 「迴圈」:找 s 裡位置之後第一組 ASCII 不分大小寫批配 "
charset
" 的七個字符。若批配不存在,回傳空值並退出這些步驟。 - 跳過接著 "
charset
" 的所有 U+0009, U+000A, U+000C, U+000D 或 U+0020 字符(這些字符不一定存在)。 - 若下一個字符不是 U+003D EQUALS SIGN('='),則將位置為指向該字符的正前面並跳回「迴圈」步驟。
- 跳過接著等號的所有 U+0009, U+000A, U+000C, U+000D 或 U+0020 字符(這些字符不一定存在)。
- 用下述方式處理下一個字符:
- ↪ 若字符為 U+0022 QUOTATION MARK(")且 s 的後面還有一個 U+0022 QUOTATION MARK(")
- ↪ 若字符為 U+0027 APOSTROPHE(')且 s 的後面還有一個 U+0027 APOSTROPHE(')
- 回傳此字符跟下一個最近的相同字符之間字串的對應編碼。
- ↪ 若字符為單一個 U+0022 QUOTATION MARK(")
- ↪ 若字符為單一個 U+0027 APOSTROPHE(')
- ↪ 下一個字符不存在
- 回傳空值
- ↪ 否則
- 回傳此字符跟下一個 U+0009, U+000A, U+000C, U+000D, U+0020 或 U+003B 字符或 s 的結尾之間對應編碼。
注:本演算法與 HTTP 規範的那些不同(舉例來說,HTTP 禁止單引號的使用,且要求使用者代理支援本演算法不支援的反斜線跳脫)。雖然這個演算法在使用背景的歷史上與 HTTP 有關,但是實作支援的語法已經差異化一段時間了。[HTTP]