Html page set content type

Content-Type

Content-Type заголовок представления используется , чтобы указать исходный тип носителя ресурса (до любого кодирования контента применяется для отправки).

В ответах заголовок Content-Type предоставляет клиенту фактический тип возвращаемого содержимого. Значение этого заголовка можно игнорировать, например, когда браузеры выполняют сниффинг MIME; установите для заголовка X-Content-Type-Options значение nosniff , чтобы предотвратить такое поведение.

В запросах (таких как POST или PUT ) клиент сообщает серверу, какой тип данных фактически отправляется.

Header type Representation header
Запрещенное имя заголовка no
Заголовок ответа с CORS-запретом yes
Заголовок запроса с CORS-защитой да, с дополнительным ограничением, что значения не могут содержать байт заголовка запроса CORS-unsafe : 0x00-0x1F (кроме 0x09 (HT)), «():<>?@[\]<> и 0x7F (DEL) .
Он также должен иметь MIME-тип его анализируемого значения (без учета параметров): application/x-www-form-urlencoded , multipart/form-data или text/plain .

Syntax

Content-Type: text/html; charset=UTF-8 Content-Type: multipart/form-data; boundary=something

Directives

Стандарт кодирования символов.

Для составных объектов требуется boundary директива. Директива состоит из от 1 до 70 символов из набора символов (и не заканчивается пробелом), которые, как известно, очень надежны для шлюзов электронной почты. Он используется для инкапсуляции границ нескольких частей сообщения. Часто к границе заголовка добавляются два тире, а к последней границе добавляются два тире в конце.

Examples

Content-Type в HTML-формах

В запросе POST , полученном в результате enctype HTML-формы, Content-Type запроса указывается атрибутом enctype в элементе .

form action="/" method="post" enctype="multipart/form-data"> input type="text" name="description" value="some text" /> input type="file" name="myFile" /> button type="submit">Submit button> form> 

Запрос выглядит примерно так (здесь опущены менее интересные заголовки):

POST /foo HTTP/1.1 Content-Length: 68137 Content-Type: multipart/form-data; boundary=---------------------------974767299852498929531610575 -----------------------------974767299852498929531610575 Content-Disposition: form-data; name="description" some text -----------------------------974767299852498929531610575 Content-Disposition: form-data; name="myFile"; filename="foo.txt" Content-Type: text/plain (content of the uploaded file foo.txt) -----------------------------974767299852498929531610575-- 

Specifications

Источник

Читайте также:  Php script name function

Content-Type

The Content-Type representation header is used to indicate the original media type of the resource (prior to any content encoding applied for sending).

In responses, a Content-Type header provides the client with the actual content type of the returned content. This header’s value may be ignored, for example when browsers perform MIME sniffing; set the X-Content-Type-Options header value to nosniff to prevent this behavior.

In requests, (such as POST or PUT ), the client tells the server what type of data is actually sent.

Header type Representation header
Forbidden header name no
CORS-safelisted response header yes
CORS-safelisted request header yes, with the additional restriction that values can’t contain a CORS-unsafe request header byte: 0x00-0x1F (except 0x09 (HT)), «():<>?@[\]<> , and 0x7F (DEL).
It also needs to have a MIME type of its parsed value (ignoring parameters) of either application/x-www-form-urlencoded , multipart/form-data , or text/plain .

Syntax

Content-Type: text/html; charset=utf-8 Content-Type: multipart/form-data; boundary=something 

Directives

The MIME type of the resource or the data.

The character encoding standard. Case insensitive, lowercase is preferred.

For multipart entities the boundary directive is required. The directive consists of 1 to 70 characters from a set of characters (and not ending with white space) known to be very robust through email gateways. It is used to encapsulate the boundaries of the multiple parts of the message. Often, the header boundary is prepended with two dashes and the final boundary has two dashes appended at the end.

Examples

Content-Type in HTML forms

In a POST request, resulting from an HTML form submission, the Content-Type of the request is specified by the enctype attribute on the element.

form action="/" method="post" enctype="multipart/form-data"> input type="text" name="description" value="some text" /> input type="file" name="myFile" /> button type="submit">Submitbutton> form> 

The request looks something like this (less interesting headers are omitted here):

POST /foo HTTP/1.1 Content-Length: 68137 Content-Type: multipart/form-data; boundary=---------------------------974767299852498929531610575 -----------------------------974767299852498929531610575 Content-Disposition: form-data; name="description" some text -----------------------------974767299852498929531610575 Content-Disposition: form-data; name="myFile"; filename="foo.txt" Content-Type: text/plain (content of the uploaded file foo.txt) -----------------------------974767299852498929531610575-- 

Specifications

Browser compatibility

BCD tables only load in the browser

See also

Found a content problem with this page?

This page was last modified on Apr 10, 2023 by MDN contributors.

Your blueprint for a better internet.

Источник

Настройка параметра HTTP charset

Когда сервер отправляет документ клиентскому приложению (например, браузер), он также отправляет информацию в поле Content-Type сообщая заголовок HTTP о том, какой это тип данных. Эта информация выражается с помощью отметки MIME. Эта статья должна стать отправной точкой для тех, кто должен установить информацию о кодировке в заголовке HTTP.

Параметр charset

Документы, переданные с HTTP, которые имеют следующие типы текста: text/html, text/plain, и т.д., могут послать charset параметр к заголовку HTTP, чтобы указать кодировку символов документа.

Это очень важно всегда явно отмечать Веб документы. В HTTP 1.1 говорится, что по умолчанию charset должен быть ISO-8859-1. Но есть очень много неотмеченных документов в других кодировках, поэтому когда нет явного параметра charset браузеры используют то кодирование, которое предпочитает читатель.

Обычно строка в заголовке HTTP выглядит следующим образом:

Установка сервера

Как сделать так, чтобы сервер посылал соответствующую charset информацию зависит от сервера. Чтобы иметь возможность изменять настройки сервера вам понадобятся соответствующие административные права.

Apache. Это можно сделать с помощью AddCharset (Apache 1.3.10 и позднейшие) или директив AddType для каталогов или отдельных ресурсов (файлов). С помощью AddDefaultCharset (Apache 1.3.12 и позднейшие), можно установить параметр charset по умолчанию для всего сервера. Дополнительные сведения смотрите в статье Настройка ‘charset’ информации в .htaccess.

Jigsaw. Используйте indexer в JigAdmin , чтобы связать расширения с charset, или установить charset непосредственно на ресурсе .

IIS 5 и 6. В Internet Services Manager, щелкните правой кнопкой мыши «Default Web Site» (или сайт, который нужно настроить) и перейдите к «Properties» => «HTTP Headers» => «File Types. » => «New Type. «. Поставьте расширение, которое вы хотите отобразить, отдельно для каждого расширения; вероятно пользователи IIS захотят, отобразить .htm, .html. Тогда добавьте к Content type » text/html;charset=utf-8 » (без кавычек; замените желаемый вами charset на iso-8859-1; нигде не оставляйте пробелы, поскольку IIS игнорирует весь текст после пробелов). Для IIS 4, вам возможно, придется использовать «HTTP Headers» => «Creating a Custom HTTP Header» если выше указанная схема не работает.

Скриптовий заголовок

Соответствующий заголовок можно также установить в server side scripting languages (скриптовые языки сервера). Например:

Perl. Выведите правильный заголовок перед любой частью текущей страницы. После последнего заголовка, используйте двойной linebreak (разрыв строки), например:
print «Content-Type: text/html; charset=utf-8\n\n»;

Python. Используйте то же решение, что и для Perl (кроме того, что в конце вам не нужно использовать точку с запятой).

PHP. Перед созданием любого контента используйте функцию header(), например:
header(‘Content-type: text/html; charset=utf-8’);

Java Servlets. Используйте setContentType метод на ServletResponse до получения любого объекта (Stream или Writer) использованного для вывода, например:
resource.setContentType («text/html;charset=utf-8»);
Если вы используете Writer, Servlet автоматически заботится о преобразовании с Java Строк в избранное кодирование.

JSP. Используйте директиву page например:

Выводит из out.println() или выраженные элементы ( ) автоматически превращаются в избранное кодирование. Кроме того, сама страница интерпретируется, как закодированная в этой кодировке.

ASP и ASP.Net. ContentType и charset устанавливаются независимо, и есть методы для соответствующего объекта. Чтобы установить charset, используйте например:

В ASP.Net, настройки Response.ContentEncoding будет влиять на параметр charset в HTTP Content-Type так же как отправленное фактическое кодирование документа (которое, конечно, должно быть таким же). По умолчанию может быть установлено в элементе globalization в Web.config (или Machine.config , которое первоначально установленно в UTF-8).

Дополнительные материалы

  • Настройка charset информации в .htaccess
  • Проверка заголовков HTTP
  • Пособие, Обработка кодирования символов в HTML и CSS
  • Ссылки по теме, Настройка сервера
    • Символы
    • Настройка параметра HTTP charset
    • Символы
    • Символы

    Источник

Оцените статью