Методы запроса
Список методов HTTP-запроса (глаголы).
Методы запроса
Метод | Описание | Имеет тело? |
---|---|---|
CONNECT | В этой спецификации зарезервировано имя метода CONNECT для использования с прокси-сервером, который может динамически переключаться на туннель (например, SSL-туннель). | Нет |
DELETE | Метод DELETE запрашивает у исходного сервера удаление ресурса, указанного в Request-URI. | Нет |
GET | Метод GET извлекает любую информацию (в форме объекта), идентифицированную Request-URI. | Нет |
HEAD | Метод HEAD идентичен GET, за исключением того, что сервер НЕ ДОЛЖЕН возвращать тело сообщением в ответе. | Нет |
OPTIONS | Метод OPTIONS представляет собой запрос информации о вариантах связи, доступных в цепочке запросов/ответов, идентифицированных Request-URI. | Нет |
POST | Метод POST используется для запроса, чтобы исходный сервер принял объект, заключенный в запросе, в качестве нового подчиненного ресурса. идентифицируется Request-URI в строке запроса. | Да |
PUT | Метод PUT запрашивает, чтобы вложенная сущность была сохранена под предоставленным Request-URI. | Да |
TRACE | Метод TRACE используется для вызова удаленного обратного цикла на уровне приложения для сообщения запроса. | Нет |
Коды статуса
Эти две таблицы определяют диапазоны кодов состояния (классификацию) и описывают все коды состояния.
Классификация кодов состояния
Общий диапазон | Определенный диапазон | Категория |
---|---|---|
100–199 | 100–101 | Информационное |
200–299 | 200–206 | Успешное |
300–399 | 300–305 | Перенаправление |
400–499 | 400–415 | Ошибка клиента |
500–599 | 500–505 | Ошибка сервера |
Более подробное описание кодов состояния
Код ответа | Ответ | Значение |
---|---|---|
100 | Continue | Получена начальная часть запроса, и клиент может продолжить. |
101 | Switching Protocols | Сервер меняет протоколы, как указано клиентом, на тот, который указан в заголовке "Upgrade". |
200 | OK | Успешный запрос. |
201 | Created | Ресурс был создан (для запросов, которые создают новые объект с помощью сервера). |
202 | Accepted | Запрос был принят, но сервер не пока не выполнял с ним никаких действий. |
203 | Non-Authoritative Information | Транзакция прошла успешно, за исключением информации, содержащейся в заголовках объекта, которая была получена не с исходного сервера, а с копии ресурса. |
204 | No Content | Ответное сообщение содержит заголовки и строку состояния, но без тела объекта. |
205 | Reset Content | Другой код, предназначенный для браузеров; в основном означает, что браузер должен очистить все элементы HTML-формы на текущей странице. |
206 | Partial Content | Частичный запрос был выполнен успешно. |
300 | Multiple Choices | Клиент запросил URL-адрес, который ссылается к нескольким ресурсам. Этот код возвращается вместе со списком опций; затем пользователь может выбрать тот, который ему нужен. |
301 | Moved Permanently | Запрошенный URL-адрес был перемещен. Ответ должен содержать URL-адрес местоположения, указывающий, где сейчас находится ресурс. |
302 | Found | Как код состояния 301, но с временным перемещением. Клиент должен использовать URL, указанный в заголовке Location, чтобы временно найти этот ресурс. |
303 | See Other | Сообщает клиенту, что ресурс должен быть извлечен используя другой URL. Этот новый URL-адрес находится в заголовке Location ответного сообщения. |
304 | Not Modified | Клиенты могут обусловливать свои запросы заголовками запросов, которые они включают. Этот код указывает на то, что ресурс не изменился. |
305 | Use Proxy | Доступ к ресурсу должен осуществляться через прокси, расположение прокси указано в заголовке Location. |
306 | (Unused) | Этот код состояния в настоящее время не используется. |
307 | Temporary Redirect | Как код статуса 301; однако клиент должен использовать URL-адрес, указанный в заголовке Location, чтобы временно найти ресурс. |
400 | Bad Request | Сообщает клиенту, что он отправил неверный запрос. |
401 | Unauthorized | Возвращается вместе с соответствующими заголовками, которые просят клиента аутентифицировать себя, прежде чем он сможет получить доступ к ресурсу. |
402 | Payment Required | В настоящее время этот код состояния не используется, но он был отложен для использования в будущем. |
403 | Forbidden | Запрос был отклонен сервером |
404 | Not Found | Запрашиваемый ресурс не найден |
405 | Method Not Allowed | Запрос был сделан с помощью метода, который не поддерживается для запрошенного URL. Заголовок Allow должен быть включен в ответ, чтобы сообщить клиенту, какие методы разрешены для запрошенного ресурса. |
406 | Not Acceptable | Клиенты могут указать параметры того, какие типы сущностей они готовы принять. Этот код используется, когда на сервере нет ресурса, соответствующего URL-адресу, приемлемому для клиента. |
407 | Proxy Authentication Required | Подобен коду состояния 401, но используется для прокси-серверов, требующих аутентификации для ресурса. |
408 | Request Timeout | Если клиенту требуется слишком много времени для выполнения своего запроса, сервер может отправить обратно этот код состояния и закрыть соединение. |
409 | Conflict | Запрос вызывает конфликт на ресурсе. |
410 | Gone | Как код состояния 404, за исключением того, что сервер когда-то хранил этот ресурс. |
411 | Length Required | Серверы используют этот код, когда им требуется заголовок Content-Length в сообщении запроса. Сервер не будет принимать запросы на ресурс без заголовка Content-Length. |
412 | Precondition Failed | Если клиент делает условный запрос и одно из условий не выполняется, возвращается этот код ответа. |
413 | Request Entity Too Large | Клиент отправил тело объекта, которое больше, чем сервер может или хочет обработать. |
414 | Request URI Too Long | Клиент отправил запрос с URL-адресом запроса, который больше того, что сервер может или хочет обработать. |
415 | Unsupported Media Type | Клиент отправил объект типа контента, который сервер не понимает или не поддерживает. |
416 | Requested Range Not Satisfiable | В сообщении с запросом запрашивается диапазон данного ресурса, и этот диапазон либо недействителен, либо не может быть соблюден. |
417 | Expectation Failed | Запрос содержал ожидание в заголовке запроса Expect, которое не могло быть выполнено сервером. |
500 | Internal Server Error | Сервер обнаружил ошибку, которая помешала ему обработать запрос |
501 | Not Implemented | Клиент сделал запрос, который выходит за рамки возможностей сервера. |
502 | Bad Gateway | Сервер, действующий как прокси или шлюз, обнаружил поддельный ответ от следующей ссылки в цепочке ответов на запрос. |
503 | Service Unavailable | В настоящее время сервер не может обслуживать запрос, но сможет это сделать в будущем. |
504 | Gateway Timeout | Аналогичен коду состояния 408, за исключением того, что ответ приходит от шлюза или прокси, у которого истекло время ожидания ответа на свой запрос от другого сервера. |
505 | HTTP Version Not Supported | Сервер получил запрос в версии протокола, которую он не может или не поддерживает. |
Заголовки
И HTTP-запрос, и HTTP-ответ могут содержать поля заголовка. Эти две таблицы описывают эти поля и предоставляют простые примеры.
Заголовки запроса
Заголовок | Описание | Пример |
---|---|---|
Accept | Может использоваться для указания определенных типов носителей, приемлемых для ответа. | Accept: text/plain |
Accept-Charset | Указывает, какие наборы символов приемлемы для ответа. | Accept-Charset: utf-8 |
Accept-Encoding | Аналогичен Accept, но ограничивает допустимые в ответе кодировки содержимого. | Accept-Encoding: gzip, deflate |
Accept-Language | Аналогично Accept, но ограничивает набор естественных языков, которые предпочтительны в качестве ответа. | Accept-Language: en-US |
Authorization | Учетные данные для HTTP-аутентификации. | Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
Cache-Control | Используется для указания директив, которым должны подчиняться все механизмы кэширования в цепочке запрос-ответ. | Cache-Control: no-cache |
Connection | Позволяет отправителю указывать параметры, которые требуются для этого конкретного соединения, и НЕ ДОЛЖНЫ передаваться прокси-серверами через другие соединения | Connection: keep-alive |
Content-Encoding | Content-Encoding в основном используется для сжатия документа без потери идентичности его базового типа носителя. | Content-Encoding: gzip |
Cookie | Файл cookie HTTP, ранее отправленный сервером с помощью Set-Cookie | Cookie: $Version=1; |
Content-Length | Длина тела запроса в октетах (8-битных байтах). | Content-Length: 1024 |
Content-MD5 | Двоичная сумма MD5 в кодировке Base64 содержимого тела запроса. | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== |
Content-Type | MIME-тип тела запроса (используется с запросами POST и PUT). | content3 |
Date | Дата и время отправки сообщения. | Date: Tue, 19 Jun 2012 10:10:10 GMT |
Expect | Указывает, что клиенту требуется определенное поведение сервера. | Expect: 100-continue |
From | Электронный адрес пользователя, отправившего запрос. | From: testmail@gmail.com |
Host | Доменное имя сервера (для виртуального хостинга) и номер TCP-порта, на котором сервер прослушивает. Номер порта можно не указывать, если порт является стандартным для запрашиваемой услуги. Обязательно с HTTP/1.1. | Host: test-website.com |
If-Match | Выполняет действие только в том случае, если предоставленная клиентом сущность соответствует той же сущности на сервере. Это в основном для таких методов, как PUT, чтобы обновлять ресурс только в том случае, если он не был изменен с момента последнего обновления пользователем. | If-Match: "737060cd8c284d8af7ad3082f209582d" |
If-Modified-Since | Позволяет возвращать 304 Not Modified, если содержимое не изменилось. | If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT |
If-None-Match | Позволяет возвращать 304 Not Modified, если содержимое не изменилось. | If-None-Match: "737060cd8c284d8af7ad3082f209582d" |
If-Range | Если объект не изменился, пришлите мне недостающие части; в противном случае пришлите мне новый объект целиком. | If-Range: "737060cd8c284d8af7ad3082f209582d" |
If-Unmodified-Since | Отправляйте ответ только в том случае, если объект не изменялся с определенного времени. | If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT |
Max-Forwards | Ограничьте количество раз, когда сообщение может быть переадресовано через прокси или шлюзы. | Max-Forwards: 10 |
Origin | Инициирует запрос на совместное использование ресурсов между источниками (запрашивает у сервера поле ответа «Access-Control-Allow-Origin»). | Origin: http://test1.test-website.com |
Pragma | Заголовки, зависящие от реализации, которые могут иметь различные эффекты в любом месте цепочки запрос-ответ. | Pragma: no-cache |
Proxy-Authorization | Учетные данные для подключения к прокси. | Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== |
Range | Запросить только часть объекта. Байты нумеруются от 0. | Range: bytes=500-999 |
Referer | Это адрес предыдущей веб-страницы, с которой переходили по ссылке на текущую запрашиваемую страницу. (Слово «реферер» написано с ошибками в RFC, а также в большинстве реализаций.) | Referer: http://test1.test-website.com |
TE | Кодировки передачи, которые пользовательский агент готов принять: могут использоваться те же значения, что и для заголовка ответа TE, плюс значение 'trailers' (связанное с методом 'chunked' передачи) для уведомления сервера, который он ожидает получить дополнительные заголовки (трейлеры) после последнего фрагмента нулевого размера. | TE: trailers, deflate |
Upgrade | Попросить сервер перейти на другой протокол. | Upgrade: HTTPS/1.3, IRC/6.9, RTA/x11, websocket |
User-Agent | Информации о клиенте (браузере пользователя) | User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0 |
Via | Сообщает серверу о прокси, через который был отправлен запрос. | Via: 1.0 fred, 1.1 example.com (Apache/1.1) |
Warning | Общее предупреждение о возможных проблемах с телом сущности. | Warning: 199 Miscellaneous warning |
Заголовки ответа
Заголовок | Описание | Пример |
---|---|---|
Access-Control-Allow-Origin | Указание того, какие веб-сайты могут участвовать в совместном использовании ресурсов из разных источников. | Access-Control-Allow-Origin: * |
Accept-Ranges | Позволяет серверу указать, что он принимает запросы диапазона для ресурса. | Accept-Ranges: bytes |
Age | Передает оценку отправителя количества времени с момента создания ответа (или его повторной проверки) на исходном сервере. | Age: 24 |
Allow | Перечисляет набор методов, поддерживаемых ресурсом, указанным в Request-URI. Назначение этого поля - строго информировать получателя о допустимых методах, связанных с ресурсом. | Allow: GET, HEAD, PUT |
Cache-Control | Сообщает всем механизмам кэширования от сервера к клиенту, могут ли они кэшировать этот объект. Измеряется в секундах. | Cache-Control: max-age=3600 |
Connection | Параметры, которые требуются для подключения. | Connection: close |
Content-Encoding | Тип кодировки, используемой для данных. См. Сжатие HTTP. | Content-Encoding: gzip |
Content-Language | Язык, на котором написано содержимое. | Content-Language: en |
Content-Length | Длина тела ответа в октетах (8-битных байтах) | Content-Length: 1024 |
Content-Location | Альтернативное расположение содержимого. | Content-Location: /index.htm |
Content-MD5 | Двоичная сумма MD5 в кодировке Base64 содержимого ответа. | Content-MD5: Q2hlY2sgSW50ZWdyaXR5IQ== |
Content-Disposition | Возможность вызвать диалоговое окно «Загрузка файла» для известного типа MIME в двоичном формате или предложить имя файла для динамического содержимого. Цитаты обязательны со специальными символами. | Content-Disposition: attachment; filename="fname.ext" |
Content-Range | Где в полном теле сообщения это частичное сообщение. | Content-Range: bytes 21010-47021/47022 |
Content-Type | MIME-тип этого контента | Content-Type: text/html; charset=utf-8 |
Date | Дата и время отправки сообщения. | Date: Sun, 17 Jun 2017 10:11:12 GMT |
ETag | Идентификатор конкретной версии ресурса, чаще всего дайджест сообщения. | ETag: "737060cd8c284d8af7ad3082f209582d" |
Expires | Указывает дату/время, после которых ответ считается устаревшим. | Expires: Date: Sun, 17 Jun 2017 10:11:12 GMT |
Last-Modified | Дата последнего изменения запрошенного объекта в формате RFC 2822 | Last-Modified: Date: Sun, 17 Jun 2017 10:11:12 GMT |
Link | Используется для выражения типизированной связи с другим ресурсом, где тип связи определяется RFC 5988 | Link: ; rel="alternate" |
Location | Используется при перенаправлении или при создании нового ресурса. | Location: http://test1.test-website.com/index.html| |
P3P | Этот заголовок предназначен для установки политики платформы для проекта настроек конфиденциальности (P3P) в форме P3P: CP='your_compact_policy'. Однако P3P не стал популярным, большинство браузеров никогда полностью не реализовали его, многие веб-сайты устанавливают этот заголовок с поддельным текстом политики, этого было достаточно, чтобы обмануть браузеры существованием политики P3P и предоставить разрешения для сторонних файлов cookie. | P3P: CP="This is not a P3P policy! See http://www.google.com/support/ accounts/bin/answer.py?hl=en&answer=151657 for more info." |
Pragma | Заголовки, зависящие от реализации, которые могут иметь различные эффекты в любом месте цепочки запрос-ответ. | Pragma: no-cache |
Proxy-Authenticate | Запросить аутентификацию для доступа к прокси. | Proxy-Authenticate: Basic |
Refresh | Используется при перенаправлении или при создании нового ресурса. Это обновление перенаправляется через 5 секунд. Это проприетарное нестандартное расширение заголовка, представленное Netscape и поддерживаемое большинством веб-браузеров. | Refresh: 5; url=http://test1.test-website.com/index.html |
Retry-After | Если объект временно недоступен, это указывает клиенту повторить попытку через определенный период времени (секунды). | Retry-After: 240 |
Server | Имя сервера | Server: Apache/2.4 (Unix) |
Set-Cookie | Устанавливает HTTP cookie | Set-Cookie: UserID=1; Max-Age=3600; Version=1 |
Strict-transfer-Security | Политика HSTS, информирующая HTTP-клиента о том, как долго следует кэшировать политику HTTPS-only и применяется ли это к поддоменам. | Strict-transfer-Security: max-age=16070400; includeSubDomains |
Trailer | Значение общего поля трейлера указывает, что данный набор полей заголовка присутствует в трейлере сообщения, закодированного с помощью кодирования передачи по частям. | Trailer: Max-Forwards |
Transfer-Encoding | Форма кодирования, используемая для безопасной передачи объекта пользователю. В настоящее время определены следующие методы: chunked, compress, deflate, gzip, identity. | Transfer-Encoding: chunked |
Vary | Сообщает нижестоящим прокси, как сопоставлять заголовки будущих запросов, чтобы решить, можно ли использовать кешированный ответ, вместо того, чтобы запрашивать новый с исходного сервера. | Vary: * |
Via | Информирует клиента о прокси, через которые был отправлен ответ. | Via: 1.0 mick, 1.1 baselogic.com (Apache/2.4) |
Warning | Общее предупреждение о возможных проблемах с телом сущности. | A general warning about possible problems with the entity body. |
WWW-Authenticate | Указывает схему аутентификации, которая должна использоваться для доступа к запрошенному объекту. | WWW-Authenticate: Basic |
MIME-типы
Из-за огромного количества типов Интернет-медиа, здесь перечислены только наиболее часто используемые.
Основные MIME-типы
Тип | Описание |
---|---|
application | Формат содержимого для конкретного приложения (дискретный тип) |
audio | Аудиоформат (дискретный тип) |
chemical | Набор химических данных (дискретное расширение типа IETF) |
image | Формат изображения (дискретный тип) |
message | Формат сообщения (составной тип) |
model | Формат 3-D модели (дискретное расширение IETF) |
multipart | Набор нескольких объектов (составной тип) |
text | Текстовый формат (дискретный тип) |
video | Формат видео (дискретный тип) |
MIME-типы приложений
Тип | Описание |
---|---|
application/atom+xml | Каналы Atom |
application/ecmascript | ECMAScript/JavaScript (эквивалент application/javascript, но с более строгими правилами обработки) |
application/json | Обозначение объекта JavaScript JSON |
application/javascript | ECMAScript/JavaScript (эквивалент application/ecmascript, но с более свободными правилами обработки) Не поддерживается в IE 8 или более ранних версиях. |
application/octet-stream | Неклассифицированные двоичные данные. |
application/pdf | Формат переносимого документа |
application/postscript | PostScript |
application/rss+xml | RSS-каналы |
application/soap+xml | SOAP |
application/font-woff | Формат открытого веб-шрифта |
application/xhtml+xml | XHTML |
application/xml-dtd | Файлы определения типа документа (DTD) |
application/xop+xml | XML-двоичная оптимизированный пакет (XOP) |
application/zip | Файлы ZIP-архива |
application/gzip | Gzip |
Составные MIME-типы
Тип | Описание |
---|---|
multipart/mixed | MIME Email |
multipart/form-data | MIME веб-форма |
Текстовые MIME-типы
Тип | Описание |
---|---|
text/css | Каскадные таблицы стилей |
text/csv | Значения, разделенные запятыми |
text/html | HTML файл |
text/plain | Текстовые данные |
text/xml | Расширяемый язык разметки |
Все, что упомянуто в этой справочной статье, можно найти более подробно в документе спецификации HTTP 1.1: