HTTP權威指南學習 第16章 國際化

2021-10-12 14:00:14 字數 3454 閱讀 5710

http要能夠傳輸和處理多種語言和字母表編寫的國際性文件

兩個主要問題:

字符集編碼(character set encoding)和語言標記(language tag)。http應用程式使用字符集編碼請求和顯示不同字母表中的文字,他們使用語言標記根據使用者所理解的語言來說明並限制內容。

注意內容:

講解http如何與多語言字母表的方案和相關標準進行互動;

快速概覽術語、技術和標準,以幫助http程式設計人員正確理解。

解釋對各種語言的標準命名系統,以及標準化的語言標記如何描述和選擇內容。

概述國際性的uri要遵守的規則和注意事項;

簡要討論日期格式和其他國際化方面的問題。

對http來說,實體主體只是二進位制資訊的容器而已。

伺服器通過http協議的content-type首部中的charset引數和content-language首部告知客戶端文件的字母表和語言。

同時,客戶端可以通過accept-charset首部和accept-language首部,告知伺服器它理解哪些字符集編碼演算法和以及其中的有限順序。

各國的字母表和它們的字符集編碼。

http字符集的值說明如何把實體內容的二進位製碼轉換為特定字母表中的字元。每個字符集標記都命名了一種把二進位製碼轉換為字元的演算法(反之亦然)。

content-type: text/html; charset=iso-8859-6
有定長編碼和可變長編碼(variable-length)。

兩步完成解碼:

1.把二進位製碼轉換成字元**。

2.用字元**從編碼的字符集中選擇特定的元素。

國際化關係系統的關鍵目標是把語義(字母)和表示(圖形化的顯示形式)隔離開來。

也就是同乙個字元碼如果使用不同的解碼器會顯示不同的字元。

特定的字元編碼方案和特定的已編碼字符集組合成乙個mime字符集(mime charset)。

web伺服器通過在content-type首部中使用charset引數把mime字符集標記傳送給客戶端:

content-type: text/html; charset=iso-2022-jp
如果沒有這個首部,並且返回的是html文件,客戶端可以通過標記中找到字符集。否則,可以根據字元編碼模式去推斷,或採用預設編碼方式。

這個首部列出了客戶端支援的編碼方案。

本節是對字元系統及其標準的概覽

字元:是指字母、數字、標點、表意文字(比如漢語)、符號,或其它文字形式的書寫「原子」。

字形:描述字元的筆圖案或唯一的圖形化形狀。

編碼後的字元:分配給字元的唯一數字編號,這樣我們就可以操作它了。

**空間:計畫用於**值的整數範圍。

**寬度:每個(固定大小的)字元**所用的位數。

字元庫:特定的工作字符集(全體字元的乙個子集)。

編碼後得字符集:組成字元庫(從全球的字元中選出若干字元)的已編碼字符集,並為每個字元分配**空間中的乙個**。換句話說,他把數位化的字元**對映為實際的字元。

字元編碼方案:把數位化的字元**編碼成一系列二進位製碼(並能相應的反向解碼)的演算法。字元編碼方案可用來減少識別字元所需要的資料總量(壓縮)、解決傳輸限制、統一重疊編碼字符集。

從技術上說,mime中的charset標記描述的壓根就不是字符集。他的值所命名的是把資料位對映為唯一的字元的一整套演算法。它是字元編碼方案和編碼後得字符集這兩種概念的組合。

乙個字元可以有很多不同的書寫形式。在很多書面語體系中,根據乙個字元在單詞中的不同位置,同乙個字元也會有不同的筆畫形狀。

每個字元可以有不同的字形。為了讓書法好看,很多手寫體和字型允許人們把相鄰的字元漂亮的連寫起來,稱為「連筆」。

編碼後的字符集把整數對映到字元。

1.us-ascii:所有字符集的始祖

2.iso-8859:是us-ascii的8位超集,使用二進位製碼的高位增加了一些國際化書面字元。由額外的二進位製碼提供的附加空間(多了128個**)還不夠大,甚至都不夠所有的歐洲字元使用。它為不同地區定製了不同的字符集。

3.jis x 0201: 是把ascii擴充套件到日文半寬片假名字元的乙個極小化的字符集。

4.jis x0208 與jis x 0212: 0208是首個多字節日文字符集。

5.ucst:統一字符集是把全世界的所有字符集成到單一編碼後字符集的環球標準化成果。

規定如何把字元的**數字打包裝入內容位元,以及在另一端如何將其解包回字元**。

有3中主要型別:

1.固定寬度:使用固定數量的位元表示每個編碼後的字元,處理快但可能浪費空間。

2.可變寬度(無模態):可變寬度方式的編碼對不同的字元**數字採用不同數量的位元。對於常用字元,這樣可以減少需要的位數,而且還能允許使用多位元組來表示國際性字元的同時,保持對傳統8位字符集的相容。

3.可變寬度(有模態):使用特殊的「轉義」模式在不同的模態之間切換。處理較複雜但可以有效地支援複雜的書寫系統。

常見編碼方案:

8位:如iso-8859系列字元家族。

utf-8: 是一種流行的為ucs設計的字符集編碼方案,utf表示ucs變換格式(ucs transformation format)。屬於無模態的變寬編碼,第一位元組的高位表示編碼後的字元所用的位元組數,所需的每個後續位元組都含有6位**值。

語言標記是命名口語的標準化字串短語。

en:英語

de:德語

ko:韓語

zh-xiang:漢語中的湖南話

描述實體的目標受眾語言。音訊片段、電影以及應用程式都可以有可能是面向特定語言受眾的。

http允許我們把語言方面的限制和優選選擇都傳送給伺服器。

語言標記有乙個或多個部分,用連字型大小分隔,稱為子標記。

馬薩葡萄園島上的手語用這個標記:sgn-us-ma。

所有的標記都是不區分大小寫的。

第乙個和第二個語言子標記的值由各種標準文件及相關的維護組織定義。iana依據rfc 3066中概括的規則來管理標準的語言標記列表。

通常是標準化的語言記號,選自iso 639中語言標準集合

通常是標準化的國家記號,選自iso 3166的國家**和地區標準集合。

除了最長可以到8個字元外(字母和數字除外),第三個和其後的子標記沒有什麼特殊規則。

可以在瀏覽器的配置檔案中配置。

目前,uri還沒有為國際化提供足夠的支援。uri還是由us-ascii字元的乙個子集組成的。

http首部必須由us-ascii字符集中的字元組成。因為有的字元處理庫會無法識別這些之外的編碼從而導致錯誤。

http規範中明確定義了合法的gmt日期格式,但並不是所有的web伺服器和客戶端都遵守這些規則。

dns目前還不支援在網域名稱中使用國際化的字元。正字支援多語言的網域名稱的相關標準化工作,但還沒有廣泛的部署。

HTTP權威指南學習 第13章 摘要認證

摘要認證和基本認證相容,但更為安全。雖然還沒有德奧廣泛應用,但對實現安全事務來說,這些概念很重要。1.永遠不會以明文方式在網路上傳送密碼。2.可以防止惡意使用者捕獲並重放認證的握手過程。3.可以有選擇地防止對報文內容的篡改。4.防範其他幾種常見的攻擊方式。對然不是最安全的,也不能滿足安全http事務...

HTTP權威指南 1 2章)

web客戶端和服務端 可靠地資料傳輸協議 http 各個版本發展歷史 只支援get請求,不支援多 內容發熱mime型別,各種http首部,或者版本號 新增了版本號,各種http首部,一些額外的方法,以及對多 的處理,使得包含生動的web頁面和互動式 成為可能 增加了keep alive連線,虛擬主機...

HTTP權威指南(7,8章)

快取 優點 1.減少了冗餘的資料傳輸,節省了網路費用 2.緩解了網路瓶頸,不需要更多的頻寬就能更快的載入頁面 3.降低了隊員是伺服器的要求,伺服器可以更快的響應,避免過載的出現 4.降低了距離時延 http 1.1 cache control max age 秒 if modified since ...