什么是HTTP标头?什么是charset?

时间:2011-04-28 01:36:59

标签: xhtml character-encoding http-headers

我是编码领域以及PHP和XHTML的新手。我只是浏览了meta标签的细节,并且不了解属性http-equiv,也不了解charset的用途以及UTF-8所指的值,例如: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

2 个答案:

答案 0 :(得分:5)

Joel Spolsky撰写的一篇非常好的文章讨论了字符集。看看:

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

对于HTTP标头,快速谷歌搜索“理解HTTP标头”出现了很多描述它们的好文章。这是一个:HTTP Headers for Dummies

简而言之,HTTP标头基本上是小消息,它们被发送到用户的Web浏览器,告诉浏览器它将要接收的输出(即,它是一个网页,一个文件,一个图像;是否应该被缓存;等),或者应该由客户的浏览器保存的cookie之类的东西。

HTTP标头也从用户的Web浏览器发送回服务器。最明显的例子是cookies - 浏览器保存的每个cookie都应该在每个HTTP请求上发送回服务器。

在您的情况下,您可能正在讨论定义页面字符集的特定HTTP标头。 <meta http-equiv="">标记用于模拟HTTP标头。

例如,如果您有一个静态HTML页面并希望利用特定的HTTP标头,但无法在Web服务器中对其进行配置,则可以使用<meta http-equiv="">标记来获得相同的结果

答案 1 :(得分:1)

@Ryan:很棒的链接。我希望在我开始实施大型国际CMS之前,我已经阅读了12年前的文章。

简单来说,当浏览器收到HTTP响应流(请求的网页)时,它看到的只是一个字节序列。因为字节可能表示不同的字符,具体取决于服务器使用的编码,所以非常重要的是浏览器在解释字节流时使用元标记中指定的编码。如果服务器使用的编码与它在元标记中的编码不同,您将看到乱码。

相反,与网页POST关联的HTTP请求也具有浏览器透明提供的编码,因为服务器需要知道如何解释已发送的任何表单数据。