JavaRush /Курсы /JSP & Servlets /HTTP-заголовки

HTTP-заголовки

JSP & Servlets
9 уровень , 5 лекция
Открыта

6.1 Виды заголовков

Заголовки http-запроса – это фактически служебная информация для http-клиента и http-сервера. Но она очень важна, и, если ты в них совершенно не разбираешься, это частенько будет выходить тебе боком. Так что придется про них хотя бы почитать.

Все http-заголовки можно разделить на 4 основные группы:

# Тип заголовка Описание Примечание
1 General Headers Общие заголовки Используются в запросах и ответах
2 Request Headers Заголовки запроса Используются только в запросах
3 Response Headers Заголовки ответа Используются только в ответах
4 Entity Headers Заголовки сущности Сопровождают каждую сущность сообщения

6.2 User-Agent

Самый важный и популярный заголовок – это User-Agent. Это специальная строка, которая описывает, какой клиент выполняет запрос на сервер. Такое себе имя клиента.

Часто сервер немного подстраивает свой ответ под запрашивающего. Например, если из запроса ясно, что запрос пришел из браузера мобильного телефона, то ему можно отдать мобильную версию HTML-страницы.

Спам-боты, менеджеры закачек и некоторые браузеры нередко шлют подложные User-Agent-строки, чтобы выдать себя за порядочных клиентов. Эта ситуация известна, как подмена или подделка пользовательского агента (user agent spoofing).

Например, мой User-Agent выглядит сейчас так:


        Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
        

В нем содержится информация о браузере, операционной системе и web-движке браузера.

6.3 Content-Type

Второй по популярности заголовок – это Content-Type. Он используется для того, чтобы определить MIME тип ресурса, который отдает сервер.

Еще на заре интернета для удобства были стандартизированы типы передаваемого медиа контента. Их называют Internet Media Types или сокращенно MimeTypes. Они делятся на 9 категорий:

  • application
  • audio
  • example
  • image
  • message
  • model
  • multipart
  • text
  • video

Примеры:

Категория Тип Описание
audio audio/mp4 Аудио-файл в формате mp4
audio/aac Аудио-файл в формате AAC
image image/gif Картинка gif
image/jpeg Картинка jpeg
image/png Картинка png
text text/css CSS-файл
text/html HTML-файл
video video/mpeg Video-файл в формате mpeg
video/webm Video-файл в формате webm
video/3gpp Video-файл в формате 3gpp
application application/x-www-form-urlencoded Закодированные данные
application/zip Архив zip
application/javascript JavaScript
application/xml XML

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

6.4 Content-Length

Этот заголовок задает длину ответа сервера. Если по-простому, то размер отдаваемого файла. Вручную этот параметр устанавливать не нужно. Хотя бывает полезно посмотреть на то, что отдал сервер, если по каким-то причинам ответ пришел не весь.

6.5 Accept-Encoding

С помощью этого заголовка клиент может указать серверу, что он поддерживает различные алгоритмы сжатия контента. Таким образом сервер может сначала заархивировать контент, например, zip-архивом, затем переслать его клиенту и клиент сможет правильно восстановить оригинальный контент.

Преимущество архивации состоит в том, что чем меньше файл, тем быстрее передается. Минусы архивации – дополнительная нагрузка на клиент и на сервер. Архивация имеет смысл при передаче больших файлов и часто не имеет смысла при передаче маленьких.

Пример такого заголовка:


        Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5
        

Где deflate и gzip – это поддерживаемые алгоритмы сжатия данных, а q обозначает степень сжатия.

Комментарии (6)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
_den Уровень 64
17 мая 2025
Слово MIME расшифровывается как: Multipurpose Internet Mail Extensions - это стандарт, который расширяет возможности электронной почты (и не только), позволяя передавать: - Текст в разных кодировках - Файлы (PDF, JPG, MP3 и др.) - HTML-сообщения - Несколько частей в одном письме (например, текст + вложение) Тип содержимого (Content-Type) часто указывается в заголовках HTTP, email и т.д.
Виктор Mris Уровень 12
3 февраля 2023
aplication не хватает "p"
Oleg Khilko Уровень 51
14 августа 2022
"Uде" в самой последней строчке, должно быть "Где".
Nikita Shamrai Уровень 8 Expert
10 августа 2022
Можно ли как-то отредактировать данные при запросе на сервер при обычном браузинге? Например: отключить Accept-Encoding, чтобы скачивать большие файлы с Google Диска не архивами, а исходными?
Anastasiya Уровень 15
4 августа 2022
"Они делятся на 10 категорий:..." и перечислено 9)
wf Уровень 33
9 августа 2022
ахах без подсказки даже не обращаешь внимания)))