Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Web-1-Вводная.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
742 Кб
Скачать
☆

Заголовки протокола http

Заголовок HTTP (HTTP Header) — это строка в HTTP-сообщении, содержащая разделённую двоеточием пару вида «параметр-значение». Формат заголовка соответствует общему формату заголовков текстовых сетевых сообщений ARPA (RFC 822). Как правило, браузер и веб-сервер включают в сообщения более чем по одному заголовку. Заголовки должны отправляться раньше тела сообщения и отделяться от него хотя бы одной пустой строкой (CRLF).

Название параметра должно состоять минимум из одного печатного символа (ASCII-коды от 33 до 126). После названия сразу должен следовать символ двоеточия. Значение может содержать любые символы ASCII, кроме перевода строки (CR, код 10) и возврата каретки (LF, код 13).

Пробельные символы в начале и конце значения обрезаются. Последовательность нескольких пробельных символов внутри значения может восприниматься как один пробел. Регистр символов в названии и значении не имеет значения (если иное не предусмотрено форматом поля).

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

Server: Apache/2.2.3 (CentOS)

Last-Modified: Wed, 09 Feb 2011 17:13:15 GMT

Content-Type: text/html; charset=UTF-8

Accept-Ranges: bytes

Date: Thu, 03 Mar 2011 04:04:36 GMT

Content-Length: 2945

Age: 51

X-Cache: HIT from proxy.omgtu

Via: 1.0 proxy.omgtu (squid/3.1.8)

Connection: keep-alive

200 OK

Тело протокола http

Тело HTTP сообщения (message-body), если оно присутствует, используется для передачи сущности, связанной с запросом или ответом. Тело сообщения (message-body) отличается от тела сущности(entity-body) только в том случае, когда при передаче применяется кодирование, указанное в заголовке Transfer-Encoding. В остальных случаях тело сообщения идентично телу сущности.

Заголовок Transfer-Encoding должен отправляться для указания любого кодирования передачи, примененного приложением в целях гарантирования безопасной и правильной передачи сообщения. Transfer-Encoding - это свойство сообщения, а не сущности, и оно может быть добавлено или удалено любым приложением в цепочке запросов/ответов.

Присутствие тела сообщения в запросе отмечается добавлением к заголовкам запроса поля заголовка Content-Length или Transfer-Encoding. Тело сообщения (message-body) может быть добавлено в запрос только когда метод запроса допускает тело объекта (entity-body).

Все ответы содержат тело сообщения, возможно нулевой длины, кроме ответов на запрос методом HEAD и ответов с кодами статуса 1xx (Информационные), 204 (Нет содержимого, No Content), и 304 (Не модифицирован, Not Modified).

Таблица кодов возврата HTTP

Код возврата

Описание кода возврата HTTP

100

Продолжить (Continue)

101

Переключение протоколов (switching protocols)

200

OK

201

Создан (created)

202

Принят

203

Неавторитеная информация (non-authoritative information)

204

Файл пуст (no content)

205

Сброс содержимого (reset content)

206

Частичное содержимое (partial content)

300

Многократный выбор (multiple choices)

301

Перемещен постоянно (moved permanently)

302

Перемещен временно (moved temporarily)

303

Смотри другой (see other)

304

Неизмененный (not modified)

305

Использовать прокси-сервер (use proxy)

400

Неправильный запрос (bad request)

401

Неавторизирован (unauthorized)

402

Payment Required

403

Нет доступа (forbidden)

404

Не найден

405

Метод не разрешен (method not allowed)

406

Неприемлемый (not acceptable)

407

Требуется аутентификация на прокси-сервере (proxy authentication required)

408

Превышение тайм-аута запроса (request time-out)

411

Тредуется длина (при использовании метода POST)

412

Не выполнено предыдущее условие (precondition failed)

413

Объект запроса слишком велик (request entity too large)

414

Запрашиваемый URL слишком велик (request URL too large)

415

Неподдерживаемый тип информации (unsupported media type)

500

Ошибка сервера (server error)

501

Не реализован (not implemented)

502

Неправильный шлюз (Bad Gateway)

503

Нехватка ресурсов (out of resources)

504

Превышен тайм-аут шлюза

505

Неподдерживаемая весрия HTTP (HTTP version not supported)

Чтобы на практике увидеть какие HTTP запроси передает и получает сервер, можно воспользоваться Инструментами разработчика браузера Google Chrome, для этого необходимо выбрать в «Инструменты» - «Инструменты разработчика». Перейти в открывшемся снизу окне во вкладку «Network». Обновить открытую страницу. В списке слева будут отображены посылаемые браузером HTTP-запросы. Вопрос на получение страницы будет самым первым в списке. Детальную информацию о нем можно получить выбрав его.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]