2011-04-28 71 views
0

我對編碼世界以及PHP和XHTML都很陌生。我只是通過元標記的細節,並不理解屬性http-equiv,也不知道什麼是字符集以及UTF-8的值是什麼,例如, <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />什麼是HTTP標頭?什麼是字符集?

回答

5

Joel Spolsky有一篇很好的文章討論了charsets。請看:

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

對於HTTP標頭,快速谷歌搜索「理解HTTP標頭」打開了想象中的那麼形容他們一些好文章。這裏有一個:HTTP Headers for Dummies

簡而言之,HTTP頭基本上是一些小的消息,它會發送到用戶的網絡瀏覽器,告訴瀏覽器它將接收的輸出(即它是網頁,文件,圖像;它應該是緩存等),或者應該由客戶端瀏覽器保存的cookies等內容。

HTTP頭也從用戶的網頁瀏覽器發送回服務器。最明顯的例子是cookie,每個由瀏覽器保存的cookie都應該在每個HTTP請求中發送回服務器。

就你而言,你可能正在討論一個特定的HTTP頭,它定義了頁面的字符集。 <meta http-equiv="">標籤用於模擬HTTP標頭。例如,如果您有一個靜態HTML頁面,並且想要利用特定的HTTP標頭,但無法在Web服務器中對其進行配置,則可以使用<meta http-equiv="">標籤來實現相同的結果。

+0

@Ryan - 謝謝瑞恩。快速瀏覽一下文章,看起來需要一段時間才能理解這些概念。我希望如果有人能夠用最簡單的例子向我解釋,那麼如果我能理解這一點,我就能理解更復雜的概念。 – PeanutsMonkey 2011-04-28 01:46:11

+0

Gotcha。我在我的答案中添加了更多內容來解釋您的問題的HTTP標頭部分,但我認爲您真的對字符集感到疑惑。這篇文章可能看起來令人望而生畏,但我認爲它很容易理解(只是很長)。 – Ryan 2011-04-28 01:54:37

+0

@瑞恩 - 感謝瑞恩。這很有幫助。糾正我,如果我錯了。當客戶端發出請求時,HTTP頭只能從Web服務器發送到客戶端瀏覽器。那是對的嗎? 當你說**模擬HTTP標頭**這是什麼意思?什麼是字符集,它是如何使用的?我問的原因是我也看到它在PHP中引用。 – PeanutsMonkey 2011-04-28 01:56:02

1

@Ryan:很棒的鏈接。我希望在12年前我開始閱讀這篇文章,然後開始實施一個大型國際CMS。

簡而言之,當瀏覽器接收到HTTP響應流(請求的網頁)時,它看到的只是一個字節序列。由於字節可能意味着不同的字符,具體取決於服務器使用的編碼,因此在解釋字節流時,瀏覽器使用元標記中指定的編碼非常重要。如果服務器使用了與元標記不同的編碼,則會看到亂碼。

相反,與網頁POST相關的HTTP請求也有一個由瀏覽器透明地提供的編碼,因爲服務器需要知道如何解釋發送的任何表單數據。