2017-02-20 3 views
1

Какая кодировка используется браузером при отправке HTTP-запросов?Кодировка браузера HTTP-запросы

Я имею в виду, когда браузер отправляет самый первый запрос, как он может быть уверен, что используемая им кодировка будет понята сервером?

Пример:

GET /hello.htm HTTP/1.1 
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) 
Host: www.tutorialspoint.com 
Accept-Language: en-us 
Accept-Encoding: gzip, deflate 
Connection: Keep-Alive 
+0

что * точно * вы подразумеваете под «кодировкой» в этом контексте? –

+0

@JulianReschke Я имею в виду при отправке HTTP-запроса он должен быть каким-то образом закодирован, например, UTF-8, UTF-16. Как он знает кодирование, может ли сервер декодироваться? – CuriousGuy

+0

Итак, вы говорите об URI? –

ответ

0

браузер может сообщить серверу явно какая кодировка используется благодаря Content-type заголовка. Content-type может содержать charset, но можно вывести кодировку по типу. For example, application/json

Контент-тип: application/json; charset = utf-8 обозначает содержимое , которое должно быть в формате JSON, закодированное в кодировке символов UTF-8. Обозначение кодировки несколько избыточно для JSON, поскольку кодировка по умолчанию (только?) Для JSON - это UTF-8. Таким образом, в этом случае принимающий сервер счастлив, зная, что он имеет дело с JSON и предполагает, что кодировка UTF-8 по умолчанию, поэтому он работает с заголовком или без него.

Как насчет того, что Content-type является not defined in request?

Отправитель, который генерирует сообщение, содержащее корпус полезной нагрузки ДОЛЖНА генерировать поле заголовка Content-Type в этом сообщении, если предназначен тип носителя вложенного представления пока неизвестен отправителя. Если поле заголовка Content-Type отсутствует, получатель МОЖЕТ либо предположить тип медиафайла «application/octet-stream» ([RFC2046], раздел 4.5.1), либо изучить данные для определения его типа.

Смежные вопросы