HTTP

Содержание

Глоссарий

Перечень элементов

Перечень методов

Свойства методов

Перечень субъектов коммуникации

URL

Свойства URL

Формы URL

Относительный URL

Перечень параметров

Перечень кодов состояния

Типы полей заголовка

Перечень полей заголовка

Перечень кодировок содержимого

Перечень директив кэширования

Перечень протоколов TCP/IP

Перечень инструментов

Ссылки

RFC

Книги

Глоссарий

authority

авторитетный источник; первоисточник

служба; центр; источник; администрация; ответственная организация

В контексте URL/URI данный термин следует понимать как имя/идентификатор, выданный ответственной организацией.

character set

набор символов

content encoding

кодирование содержимого; кодировка содержимого

content negotiation

согласование содержимого

chunked transfer encoding

порционная трансферная кодировка

downstream

по направлению трафика, по трафику; ниже; нижестоящий

downstream flow

нисходящий поток (данных)

end-to-end

сквозной (относящийся только к конечным точкам соединения, не к посредникам)

entity-body

объект; сущность-тело; содержимое

extension transfer-coding

расширенная трансферная кодировка (любая кодировка за исключением порционной)

framework

порядок (действий); модель; подход

hop-by-hop

несквозной (относящийся ко всем точкам соединения)

hostname

имя узла сети

inbound message

входящее сообщение

loopback diagnostic

кольцевая проверка

media range

диапазон медиатипов

media type

медиатип

offset

смещение

origin server

сервер назначения

outbound message

исходящее сообщение

packet-switched network protocol

протокол сети с пакетной коммутацией

quality factor

коэффициент значимости

revalidation

перепроверка

semantics

значение (указание, инструкция, предписание)

shared cache

кэширующий прокси-сервер общего пользования

token

имя

transfer encoding

трансферная кодировка

track

подход, модель

standarts track — стандартная модель (интернет-стандарт)

upstream

в направлении, противоположном трафику, против трафика; выше; вышестоящий

upstream flow

восходящий поток (данных)

URL

унифицированный ресурсный указатель

validation

проверка

Перечень элементов

Входящее сообщение (inbound message)

Сообщение, отправляемое клиентом серверу.

Заголовок сообщения

Часть сообщения, содержит поля. Бывают заголовки запроса и заголовки ответа. Заголовок оканчивается пустой строкой.

Запрос

Http-сообщение, посылаемое клиентом серверу.

Идентификатор ресурса (URI)

Имя ресурса, по которому он доступен.

Имя хоста

Алиас для IP-адреса.

Исходящее сообщение (outbound message)

Сообщение, отправляемое сервером клиенту.

Клиент

Субъект коммуникации, отправляющий запрос на сервер и ждущий от него ответа.

Код состояния

Числовой код, сообщающий клиенту результат запроса. Содержится в стартовой строке ответа.

Кэширование

Медиатип

Тип и формат содержимого, на основе которого клиент принимает решение о способе его обработки.

Метод

Команда http-запроса. Метод сообщает серверу, что нужно сделать с ресурсом.

Объект (Entity-body)

Сущность, содержащаяся в ресурсе и передаваемая в теле сообщения.

Ответ

Http-сообщение, посылаемое сервером в ответ на запрос.

Поле заголовка

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

Порт

Элемент протокола TCP, идентифицируемый номером системный ресурс, выделяемый приложению, работающему на некотором сетевом хосте.

Поясняющая фраза

Часть стартовой строки ответа, поясняющая код состояния.

Репрезентация

Форма представления содержимого.

Ресурс

Контейнер (файл), либо служба (программа), имеющие уникальный идентификатор (URI).

Сеанс

Отрезок времени, в течении которого происходит непрерывный обмен информацией между клиентом и сервером.

Сервер

Субъект коммуникации, получающий запрос от клиента и посылающий ему ответ.

Согласование содержимого

Содержимое

Информация, полезная для пользователя (данные). Может содержаться в контейнере, либо генерироваться службой по запросу. Может иметь несколько репрезентаций.

Сообщение

Объект коммуникации. Содержит стартовую строку, заголовок и тело.

Стартовая строка

Часть сообщения, описывающая его.

Тело сообщения

Часть сообщения, содержащее объект с данными.

Транзакция

Операция обмена информацией между клиентом и сервером, состоящая из одного запроса и одного ответа.

Перечень методов

DELETE

Удалить указанный ресурс.

GET

Передать объект, содержащийся в запрашиваемом ресурсе.

HEAD

Передать объектные заголовки для объекта, содержащегося в запрашиваемом ресурсе.

OPTIONS

Возвратить заголовки ответа для запрашиваемого ресурса, описывающие действия, возможные для осуществления с ним.

PATCH

Обновить фрагмент объекта в названном ресурсе.

POST

Создать ресурс, поместить в него переданный объект.

PUT

Поместить переданный объект в названный ресурс.

TRACE

Возвратить объект, содержащий заголовки запроса, передаваемые в исходном сообщении.

Свойства методов

Безопасность (safety)

Свойство метода осуществлять действия, не изменяющие ресурс.

Идемпотентность (idempotency)

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

Перечень субъектов коммуникации

Agent (Агент)

Агент — это вид клиентского приложения, способного отправлять запросы от лица пользователя.

Cache (Кеширующий прокси-сервер)

Кеширущий прокси-сервер — это прокси-сервер, управляющий локальным хранилищем часто запрашиваемых клиентом ресурсов.

Client (Клиент)

Клиент — это сетевое приложение, способное отправлять запросы на сервера и принимать ответы от них.

Forward proxy (прямой прокси-сервер)

Прямой прокси-сервер — это прокси-сервер, ретранслирующий запросы клиентов из внутренней сети на сервера внешней сети.

Gateway (HTTP-шлюз)

Http-шлюз — это прокси-сервер, позволяющая клиентам запрашивать по протоколу HTTP ресурсы, находящиеся на серверах, работающих по другим протоколам.

Open proxy (открытый прокси-сервер)

Открытый прокси-сервер — это прокси-сервер, ретранслирующий запросы клиентов из внешней сети на сервера внешней сети.

Proxy (Прокси-сервер)

Прокси-сервер — это программа-посредник, находящаяся между клиентом и сервером и используемая для решения различных вспомогательных задач.

Reverse proxy (обратный прокси-сервер)

Обратный прокси-сервер — это прокси-сервер, ретранслирующий запросы клиентов из внешней сети на сервера внутренней сети.

Server (Сервер)

Сервер — это сетевое приложение, способное принимать запросы от клиентов и отправлять им ответы.

Tunnel (Туннель)

Туннель — это приложение, позволяющее передавать данные по одному протоколу, используя инфраструктуру другого.

URL

<схема>://<логин>:<пароль>@<хост>:<порт>/<путь>;<параметр>?<запрос>#<фрагмент>

Схема

Часть ресурсного указателя, определяющая формат описания месторасположения ресурса.

Логин

Часть ресурсного указателя, определяющая имя учетной записи для которой открыт доступ к ресурсу на удаленном компьютере.

Пароль

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

Хост

Часть ресурсного указателя, определяющая имя или ip-адрес компьютера в сети, на котором хранится указанный ресурс.

Порт

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

Путь

Часть ресурсного указателя, указывающая местоположения ресурса на удаленном компьютере. Путь может состоять из нескольких частей. Такие части называются сегменты. Сегменты разделяются символами «/» (слеш).

Параметр

Часть ресурсного указателя, указывающая приложению на удаленном компьютере различную дополнительную информацию относительно хранящегося ресурса. Параметр представляет из себя пару имя-значение, разделенную символом «=» (равно). Каждый сегмент пути может иметь один или несколько параметров. Параметры отделяются от сегмента и друг от друга символом «;» (точка с запятой).

Запрос

Часть ресурсного указателя, позволяющая уточнить информацию по запрашиваемому ресурсу (например, при запросе некоторого списка сократить его размер на основе переданных критериев). Запрос может иметь произвольный формат.

Фрагмент

Часть ресурсного указателя, указывающая на часть комплексного ресурса. Фрагмент не передается в запросе, а используется клиентским приложением для ссылки.

Свойства URL

Портируемость (portability)

Данное свойство предполагает возможность передачи URL посредством множества протоколов. Реализуется посредством использования ограниченного набора символов, понимаемых большинством программ, использующих ресурсные локаторы в своей работе.

Читаемось (readability)

Данное свойство предполагает возможность прочтения URL людьми. Реализуется посредством запрета использования невидимых символов в ресурсных локаторах.

Завершенность (completeness)

Данное свойство предполагает, что URL может содержать большой объем символов. Реализуется посредством механизма управляющих символов в составе ресурсного локатора. Данный механизм является компромисом в реализации портируемости без ущерба для завершенности.

Формы URL

Каноническая (Canonical)

Форма, в которой используются только символы входящие в алфавит URL. Такая форма гарантирует, что данный ресурсный указатель будет понятен подавляющему большинству существующих приложений.

Неканоническая

Форма, в которой используются символы не входящие в алфавит URL. Такая форма, хотя и будет понятна некоторым существующим приложениям, останется неясной для подавляющего их большинства. Клиентские приложения должны кодировать подобные символы, используя управляющий механизм URL.

Относительный URL

Относительный URL

Компактная форма URL, исключающая схему и имя хоста, и состоящая только из пути. Упрощает составление документа, содержащего ресурсные указатели, а так же улучшает портируемость группы связанных ресурсов.

Базовый URL

URL ресурса, содержащего документ с относительным URL. Служит контекстом для последнего.

Перечень параметров

byte-range (байтовый диапазон)

Определяет последовательность байт, являющихся частью некоторой сущности.

ranges-specifier       = byte-ranges-specifier

byte-ranges-specifier  = byte-unit "=" byte-range-set

byte-range-set         = 1#(byte-range-spec | suffix-byte-range-spec)

byte-range-spec        = first-byte-pos "-" [last-byte-pos]

first-byte-pos         = 1*DIGIT

last-byte-pos          = 1*DIGIT

suffix-byte-range-spec = "-" suffix-length

suffix-length          = 1*DIGIT

Примеры:

bytes=0-499 ;первые 500 байт


bytes=500-999 ;вторые 500 байт


bytes=-500 ;последние 500 байт


bytes=9500- ;последние 500 байт, при размере сущности равной 10000 байт


bytes=0-0,-1 ;первый и последние байты

charset (набор символов)

Определяет метод, служащий для преобразования последовательности октетов в последовательность символов.

charset = token

token репрезентует зарегестрированный IANA набор символов. Список допустимых токенов доступен в RFC 1700 [RFC 1700. Assigned Numbers (Page 101, CHARACTER SETS)].

content-coding (кодировка содержимого)

Определяет метод шифрования содержимого.

content-coding = token

token репрезентует зарегестрированный IANA метод. В настоящий момент реестр содержит следущие токены: gzip, compress, deflate, identity.

delta-seconds (временна́я разница)

Определяет время, прошедшее с некоторого события, произошедшего в рамках http-коммуникации.

delta-seconds = 1*DIGIT

entity-tag (сущностный тэг)

Используется при сравнении объектов, относящихся ко одному и тому же ресурсу.

entity-tag = [weak] opaque-tag

weak       = "W/"

opaque-tag = quoted-string

HTTP-date (дата HTTP)

Определяет дату и время того или иного события в рамках http-коммуникации.

HTTP-date    = rfc1123-date | rfc850-date | asctime-date

rfc1123-date = wkday "," SP date1 SP time SP "GMT"

rfc850-date  = weekday "," SP date2 SP time SP "GMT"

asctime-date = wkday SP date3 SP time SP 4DIGIT

date1        = 2DIGIT SP month SP 4DIGIT ;day month year (e.g., 02 Jun 1982)

date2        = 2DIGIT "-" month "-" 2DIGIT ;day-month-year (e.g., 02-Jun-82)

date3        = month SP (2DIGIT | (SP 1DIGIT)) ;month day (e.g., Jun  2)

wkday        = "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" | "Sun"

weekday      = "Monday" | "Tuesday" | "Wednesday" | "Thursday" | "Friday" | "Saturday" | "Sunday"

month        = "Jan" | "Feb" | "Mar" | "Apr" | "May" | "Jun" | "Jul" | "Aug" | "Sep" | "Oct" | "Nov" | "Dec"

Примеры:

Sun, 06 Nov 1994 08:49:37 GMT

Sunday, 06-Nov-94 08:49:37 GMT

Sun Nov  6 08:49:37 1994

language-tag (языковой тэг)

language-tag = primary-tag *("-" subtag)

primary-tag  = 1*8ALPHA

subtag       = 1*8ALPHA

product (продукт)

Является идентификатором субъекта коммуникации.

product         = token ["/" product-version]

product-version = token

Примеры:

User-Agent: CERN-LineMode/2.15 libwww/2.17b3

Server: Apache/0.8.4

qvalue (коэффициент значимости)

Служит относительным показателем важности некоторого параметра.

qvalue = ("0" ["." 0*3DIGIT]) | ("1" ["." 0*3("0")])

range-unit (единица измерения диапазона)

Определяет единицу измерения диапазона.

range-unit       = bytes-unit | other-range-unit

bytes-unit       = "bytes"

other-range-unit = token

transfer-coding (трансферная кодировка)

Определяет метод трансферного шифрования.

transfer-coding    = "chunked" | transfer-extension

transfer-extension = token *(";" parameter)

parameter          = attribute "=" value

attribute          = token

value              = token | quoted-string

Перечень кодов состояния

100 Continue

101 Switching Protocols

200 OK

201 Created

202 Accepted

203 Non-Authoritative Information

204 No Content

205 Reset Content

206 Partial Content

300 Multiple Choices

301 Moved Permanently

302 Found

303 See Other

304 Not Modified

305 Use Proxy

307 Temporary Redirect

400 Bad Request

401 Unauthorized

402 Payment Required

403 Forbidden

404 Not Found

405 Method Not Allowed

406 Not Acceptable

407 Proxy Authentication Required

408 Request Timeout

409 Conflict

410 Gone

411 Length Required

412 Precondition Failed

413 Request Entity Too Large

414 Request-URI Too Long

415 Unsupported Media Type

416 Requested Range Not Satisfiable

417 Expectation Failed

500 Internal Server Error

501 Not Implemented

502 Bad Gateway

503 Service Unavailable

504 Gateway Timeout

505 HTTP Version Not Supported

Типы полей заголовка

Общие (General header fields)

Поля, которые могут быть использованы как в заголовке запроса, так и ответа.

Поля запроса (Request header fields)

Поля, которые могут быть использованы только в заголовке запроса.

Поля ответа (Response header fields)

Поля, которые могут быть использованы только в заголовке ответа.

Объектные поля (Entity header fields)

Поля определяющие объект, передаваемый в теле сообщения.

Поля, расширяющие стандарт (Extension header fields)

Нестандартные поля, расширяющие HTTP.

Перечень полей заголовка

Accept [request]

Определить приемлемые медиатипы для запрашиваемого объекта.

Accept           = "Accept" ":" #(media-range [accept-params])

media-range      = ("*/*" | (type "/" "*") | (type "/" subtype)) *(";" parameter)

accept-params    = ";" "q" "=" qvalue *(accept-extension)

accept-extension = ";" token ["=" (token | quoted-string)]

Примеры:

Accept: text/html

Accept: text/html;level=1

Accept: text/html;level=1;q=0.5, text/html;level=2;q=0.7, text/html

Accept: */*

Accept: text/*

Accept-Charset [request]

Определить приемлемые наборы символов для запрашиваемого объекта.

Accept-Charset = "Accept-Charset" ":" 1#((charset | "*")[ ";" "q" "=" qvalue])

Пример:

Accept-Charset: iso-8859-5, unicode-1-1;q=0.8

Accept-Encoding [request]

Определить приемлемые типы кодировки содержимого.

Accept-Encoding = "Accept-Encoding" ":" 1#(codings [";" "q" "=" qvalue])

codings         = (content-coding | "*")

Примеры:

Accept-Encoding: *

Accept-Encoding: compress, gzip

Accept-Encoding: compress;q=0.7, gzip;q=1.0

Accept-Language [request]

Определить естественные языки, приемлемые для запрашиваемого документа.

Accept-Language = "Accept-Language" ":" 1#(language-range [";" "q" "=" qvalue])

language-range  = ((1*8ALPHA *("-" 1*8ALPHA)) | "*")

Примеры:

Accept-Language: da, en-gb;q=0.8, en;q=0.7

Authentication-Info [response]

Authorization [request]

Указать данные, необходимые для авторизации.

Authorization = "Authorization" ":" credentials

credentials   = auth-scheme #auth-param

Примеры:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== ; Base64 of "Aladdin:open sesame"

Authorization: Digest username="Aladdin",response="54ef36ec71201fdf9d1423fd26f97f6b" ; MD5 of "open sesame"

Cache-Control [request] [response]

Определить директивы, управляющие механизмом кэширования.

Cache-Control            = "Cache-Control" ":" 1#cache-directive

cache-directive          = cache-request-directive | cache-response-directive

cache-request-directive  = "no-cache"
                         | "no-store"
                         | "max-age" "=" delta-seconds
                         | "max-stale" ["=" delta-seconds]
                         | "min-fresh" "=" delta-seconds
                         | "no-transform"
                         | "only-if-cached"
                         | cache-extension

cache-response-directive = "public"
                         | "private" ["=" <"> 1#field-name <">]
                         | "no-cache" ["=" <"> 1#field-name <">]
                         | "no-store"
                         | "no-transform"
                         | "must-revalidate"
                         | "proxy-revalidate"
                         | "max-age" "=" delta-seconds
                         | "s-maxage" "=" delta-seconds
                         | cache-extension

cache-extension          = token ["=" (token | quoted-string)]

Connection [request] [response]

Показать, что текущее соединение будет закрыто отправителем по завершению отправки текущего сообщения.

Указать поля заголовков, относящихся только к текущему соединению.

Connection       = "Connection" ":" "close" | 1#(connection-token)

connection-token = token

Примеры:

Connection: Upgrade

Connection: TE

Connection: close

Date [request] [response]

Указать дату создания сообщения.

Date = "Date" ":" HTTP-date

Примеры:

Date: Tue, 15 Nov 1994 08:12:31 GMT

Expect [request]

Определить действия, необходимые для выполнения на сервере.

Expect            = "Expect" ":" 1#expectation

expectation       = "100-Continue" | expectation-token

expectation-token = token ["=" (token | quoted-string) *expect-params]

expect-params     = ";" token ["=" (token | quoted-string)]

From [request]

Указать адрес электронной почты персоны, от лица которой выполняются http-запросы.

From = "From" ":" mailbox

Пример:

From: <name@domain.net>

Host [request]

Определить хост и порт сервера хранящего запрашиваемый ресурс.

Host = "Host" ":" host [":" port]

Пример:

Host: www.w3.org

If-Match [request]

Проверить, какая из содержащихся в кэше сущностей является текущей действительной репрезентацией запрашиваемого ресурса.

If-Match = "If-Match" ":" ("*" | 1#entity-tag)

Примеры:

If-Match: "xyzzy"

If-Match: "xyzzy", "r2d2xxxx", "i3piozzzz"

If-Match: *

If-Modified-Since [request]

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

If-Modified-Since = "If-Modified-Since" ":" HTTP-date

Пример:

If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT

If-None-Match [request]

Убедиться, что ни одна из содержащихся в кэше сущностей не является текущей действительной репрезентацией запрашиваемого ресурса.

If-None-Match = "If-None-Match" ":" ("*" | 1#entity-tag)

Пример:

If-None-Match: "xyzzz"

If-None-Match: W/"xyzzz"

If-None-Match: "xyzzz", "r2d2xxxx", "c3piozzzz"

If-None-Match: W\"xyzzz", W\"r2d2xxxx", W\"c3piozzzz"

If-None-Match: *

If-Range [request]

Убедиться, что запрашиваемый байтовый диапазон является частью той сущности, частичная копия которой содержится в кэше клиента.

If-Range = "If-Range" ":" (entity-tag | HTTP-date)

If-Unmodified-Since [request]

Проверить, что содержащийся в кэше документ не был изменен с момента, указанного в значении данного поля.

If-Unmodified-Since = "If-Unmodified-Since" ":" HTTP-date

Пример:

If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT

Pragma [request] [response]

Включить директиву, понимаемую некоторой специфичной реализацией протокола.

Pragma           = "Pragma" ":" 1#pragma-directive

pragma-directive = "no-cache" | extension-pragma

extension-pragma = token ["=" (token | query-string)]

Referer [request]

Указать идентификатор ресурса, содержащего документ с сылкой на текущий запрашиваемый ресурс.

Referer: "Referer" ":" (absoluteURI | relativeURI)

Referer: http://www.w3.org/hypertext/DataSources/Overview.html

Range [request]

Определить диапазон сущности, содержащейся в запрашиваемом ресурсе, в частичном запросе.

Range = "Range" ":" ranges-specifier

Пример:

Range: bytes=0-499,-500

Server [response]

Trailer [request] [response]

Определить поля заголовка, присутствующие в трейлере сообщения, зашифрованного с помощью порционной трансферной кодировки.

Trailer = "Trailer" ":" 1#field-name

TE [request]

Определить приемлемые типы расширенной трансферной кодировки.

Выразить желание принимать поля заголовков в трейлере, при использовании порционной трансферной кодировки.

TE        = "TE" ":" #(t-codings)

t-codings = "trailers" | (transfer-extension [accept-params])

Примеры:

TE: trailers, deflate;q=0.5, gzip;q=0.2

Transfer-Encoding [request] [response]

Определить используемые типы трансферной кодировки.

Transfer-Encoding = "Transfer-Encoding" ":" 1#transfer-coding

Upgrade [request] [response]

В запросе: определить приемлемые протоколы прикладного уровня.

В ответе: определить используемые протоколы прикладного уровня.

Upgrade = "Upgrade" ":" 1#product

Примеры:

Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

User-Agent [request]

Определить тип и версию используемого клиентского программного обеспечения.

User-Agent = "User-Agent" ":" 1*(product | comment)

Примеры:

User-Agent: CERN-LineMode/2.15 libwww/2.17b3

Via [request] [response]

Определить названия промежуточных субъектов коммуникации, а так же названия и версии протоколов используемых ими.

Via               = "Via" ":" 1#(received-protocol received-by [comment])

received-protocol = [protocol-name "/"] protocol-version

protocol-name     = token

protocol-version  = token

received-by       = (host [":" port]) | pseudonym

pseudonym         = token

Примеры:

Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)

WWW-Authenticate [response]

Задать требование, необходимое для аутентификации.

WWW-Authenticate = "WWW-Authenticate" ":" challenge

challenge        = auth-scheme 1*SP 1#auth-param

auth-scheme      = token

auth-param       = token "=" (token | quoted-string)

Примеры:

WWW-Authenticate: Basic realm="WallyWord"

Перечень кодировок содержимого

compress

Содержимое было закодированно с использованием алгоритма LZW.

deflate

Содержимое было закодированно с использованием алгоритма Deflate, представляющим из себя комбинацию LZ77 и алгоритма Хаффмана.

gzip

Содержимое было закодированно с использованием алгоритма LZ77.

identity

Содержимое не было закодированно.

Перечень директив кэширования

Директивы кэширования могут относиться к следующим сущностям в рамках механизма кэширования:

Директивы кэширования могут изменять следующие механизмы работы кэша:

Объект кэширования имеет следующие свойства:

Директивы запроса

max-age

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

min-fresh

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

max-stale

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

no-cache

Сообщение должно быть загружено с сервера.

only-if-cached

Сообщение должно быть извлечено из кэша.

no-store

Сообщение не должно быть сохранено в кэше ни при каких обстоятельствах.

no-transform

Любой из аспектов сущности, содержащейся в теле сообщения, описываемый заголовками Content-Encoding, Content-Length, Content-Type, не должен изменяться при сохранении данного сообщения в кэше.

Директивы ответа

public

Сообщение может быть сохранено и в публичном, и в частном кэше.

private

Сообщение или его часть может быть сохранено только в частном кэше.

no-cache

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

no-store

Сообщение не должно быть сохранено в кэше ни при каких обстоятельствах.

max-age

Сообщение становится недействительным по истечении срока, указанного в значении данной директивы.

s-maxage

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

must-revalidate

Сообщение не должно использоваться по истечению срока годности без предварительной проверки действительности.

proxy-revalidate

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

no-transform

Любой из аспектов сущности, содержащейся в теле сообщения, описываемый заголовками Content-Encoding, Content-Length, Content-Type, не должен изменяться при сохранении данного сообщения в кэше.

Перечень протоколов TCP/IP

TCP (Transmission Control Protocol)

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

IP (Internet Protocol)

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

Перечень инструментов

nc

telnet

wireshark

Ссылки

Augmented Backus—Naur Form

Chunked transfer encoding

Deflate

Fragment identifier

LZ77

LZW

Netcat

Referer

Slug

TCP/IP

Telnet

User Agent

Заголовки HTTP. Байтовые диапазоны

Порт (TCP/IP)

Прокси-сервер

Сервис туннелей

Сетевой шлюз

Список заголовков HTTP

Список кодов состояния HTTP

Туннелирование (компьютерные сети)

RFC

Перечень RFC

RFC 822. STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGES

RFC 1123. Requirements for Internet Hosts – Application and Support

RFC 1700. Assigned Numbers

RFC 1738. Uniform Resource Locators (URL)

RFC 1766. Tags for the Identification of Languages

RFC 1808. Relative Uniform Resource Locators

RFC 2119. Key words for use in RFCs to Indicate Requirement Levels

RFC 2616. Hypertext Transfer Protocol – HTTP/1.1

RFC 2617. HTTP Authentication: Basic and Digest Access Authentication

RFC 3040. Internet Web Replication and Caching Taxonomy

RFC 3986. Uniform Resource Identifier (URI): Generic Syntax

RFC 5789. PATCH Method for HTTP

Книги

HTTP Pocket Reference

HTTP: The Definitive Guide

HTTP Developer’s Handbook