Ниже приведен набор общих методов для HTTP/1.1, который может быть расширен в зависимости от требований. Имена этих методов чувствительны к регистру и должны использоваться в верхнем регистре.
Общий список HTTP методов
Метод | Описание |
GET | Метод GET используется для получения информации с данного сервера по заданному URI. Запросы, использующие GET, должны только получать данные и не должны оказывать на них никакого другого воздействия. |
HEAD | Аналогично GET, но передается только строка состояния и секция заголовка. |
POST | POST-запрос используется для отправки данных на сервер, например, информации о клиенте, загрузки файла и т.д. с помощью HTML-форм. |
PUT | Заменяет все текущие представления целевого ресурса загруженным содержимым. |
DELETE | Удаляет все текущие представления целевого ресурса, заданного URI. |
CONNECT | Устанавливает туннель к серверу, идентифицированному заданным URI. |
OPTIONS | Описывает варианты связи с целевым ресурсом. |
TRACE | Выполняет тест обратного хода сообщения по пути к целевому ресурсу. |
HTTP Методы
Метод GET
Запрос GET позволяет получить данные с веб-сервера, указав параметры в части запроса URL. Это основной метод, используемый для получения документов. В следующем примере для получения файла hello.htm используется метод GET:
1 2 3 4 5 6 | GET /hello.htm HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: example.com Accept-Language: en-us Accept-Encoding: gzip, deflate Connection: Keep-Alive |
Ответ сервера на приведенный выше GET-запрос будет выглядеть следующим образом:
1 2 3 4 5 6 7 8 9 10 | HTTP/1.1 200 OK Date: Mon, 27 Jul 2023 12:28:53 GMT Server: Apache/2.2.14 (Win32) Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Vary: Authorization,Accept Accept-Ranges: bytes Content-Length: 88 Content-Type: text/html Connection: Closed |
1 2 3 4 5 | <code><html> <body> <h1>Hello, World!</h1> </body> </html></code> |
Метод HEAD
Метод HEAD функционально аналогичен GET, за исключением того, что в ответ сервер получает строку ответа и заголовки, но не сущность-тело. В следующем примере метод HEAD используется для получения заголовочной информации о файле hello.htm:
1 2 3 4 5 6 | HEAD /hello.htm HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: example.com Accept-Language: en-us Accept-Encoding: gzip, deflate Connection: Keep-Alive |
Ответ сервера на приведенный выше запрос HEAD будет выглядеть следующим образом:
1 2 3 4 5 6 7 8 9 10 | HTTP/1.1 200 OK Date: Mon, 27 Jul 2023 12:28:53 GMT Server: Apache/2.2.14 (Win32) Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Vary: Authorization,Accept Accept-Ranges: bytes Content-Length: 88 Content-Type: text/html Connection: Closed |
Можно заметить, что здесь сервер не посылает никаких данных после заголовка.
Метод POST
Метод POST используется в тех случаях, когда необходимо отправить на сервер какие-либо данные, например, обновление файла, данные формы и т.д. В следующем примере метод POST используется для отправки данных формы на сервер, которые будут обработаны process.cgi и в итоге будет возвращен ответ:
1 2 3 4 5 6 7 8 | POST /cgi-bin/process.cgi HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: example.com Content-Type: text/xml; charset=utf-8 Content-Length: 88 Accept-Language: en-us Accept-Encoding: gzip, deflate Connection: Keep-Alive |
1 2 | <code><?xml version="1.0" encoding="utf-8"?> <string xmlns="http://example.com/">string</string></code> |
Скрипт process.cgi на стороне сервера обрабатывает переданные данные и отправляет следующий ответ:
1 2 3 4 5 6 7 8 9 10 11 | HTTP/1.1 200 OK Date: Mon, 27 Jul 2023 12:28:53 GMT Server: Apache/2.2.14 (Win32) Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Vary: Authorization,Accept Accept-Ranges: bytes Content-Length: 88 Content-Type: text/html Connection: Closed</code><code> |
1 | <html> <body> <h1>Request Processed Successfully</h1> </body> </html> |
Метод PUT
Метод PUT используется для запроса сервера на сохранение включенной сущности-тела в месте, указанном заданным URL. В следующем примере серверу предлагается сохранить указанную сущность-тело в файле hello.htm в корневой части сервера:
1 2 3 4 5 6 7 8 | PUT /hello.htm HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: example.com Accept-Language: en-us Connection: Keep-Alive Content-type: text/html Content-Length: 182</code><code> |
1 | <html> <body> <h1>Hello, World!</h1> </body> </html> |
Сервер сохранит заданную сущность-тело в файле hello.htm и отправит клиенту следующий ответ:
1 2 3 4 5 6 7 | HTTP/1.1 201 Created Date: Mon, 27 Jul 2023 12:28:53 GMT Server: Apache/2.2.14 (Win32) Content-type: text/html Content-length: 30 Connection: Closed</code><code> |
1 | <html> <body> <h1>The file was created.</h1> </body> </html> |
Метод DELETE
Метод DELETE используется для запроса сервера на удаление файла в месте, указанном заданным URL. В следующем примере сервер запрашивает удаление заданного файла hello.htm в корневой части сервера:
1 2 3 4 5 | DELETE /hello.htm HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) Host: example.com Accept-Language: en-us Connection: Keep-Alive |
Сервер удалит упомянутый файл hello.htm и отправит клиенту следующий ответ:
1 2 3 4 5 6 7 | HTTP/1.1 200 OK Date: Mon, 27 Jul 2023 12:28:53 GMT Server: Apache/2.2.14 (Win32) Content-type: text/html Content-length: 30 Connection: Closed</code><code> |
1 | <html> <body> <h1>URL deleted.</h1> </body> </html> |
Метод CONNECT
Метод CONNECT используется клиентом для установления сетевого соединения с веб-сервером по протоколу HTTP. В следующем примере запрашивается соединение с веб-сервером, работающим на хосте example.com:
1 2 | CONNECT example.com HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) |
Соединение с сервером установлено, и клиенту отправлен следующий ответ:
1 2 3 | HTTP/1.1 200 Connection established Date: Mon, 27 Jul 2023 12:28:53 GMT Server: Apache/2.2.14 (Win32) |
Метод OPTIONS
Метод OPTIONS используется клиентом для выяснения методов HTTP и других опций, поддерживаемых веб-сервером. Клиент может указать URL-адрес для метода OPTIONS или звездочку (*) для ссылки на весь сервер. В следующем примере запрашивается список методов, поддерживаемых веб-сервером, работающим на сайте example.com:
1 2 | OPTIONS * HTTP/1.1 User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) |
Сервер будет посылать информацию, основанную, например, на текущей конфигурации сервера:
1 2 3 4 5 | HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache/2.2.14 (Win32) Allow: GET,HEAD,POST,OPTIONS,TRACE Content-Type: httpd/unix-directory |
Метод TRACE
Метод TRACE используется для передачи содержимого HTTP-запроса обратно запросчику, что может быть использовано для отладки в процессе разработки. В следующем примере показано использование метода TRACE:
1 2 3 | TRACE / HTTP/1.1 Host: example.com User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) |
В ответ на указанный запрос сервер отправит следующее сообщение:
1 2 3 4 5 6 7 8 9 10 | HTTP/1.1 200 OK Date: Mon, 27 Jul 2023 12:28:53 GMT Server: Apache/2.2.14 (Win32) Connection: close Content-Type: message/http Content-Length: 39 TRACE / HTTP/1.1 Host: example.com User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT) |