HTTP Методы
Два наиболее часто используемых метода HTTP: GET и POST.
Что такое HTTP?
Протокол передачи гипертекста (HTTP) предназначен для обеспечения связи между клиентами и серверами.
HTTP работает как протокол запрос-ответ между клиентом и сервером.
Веб браузер может быть клиентом, а приложение на компьютере, на котором размещен веб сайт может быть сервером.
Пример: Клиент (браузер) отправляет запрос HTTP на сервер; затем сервер возвращает ответ клиенту. Ответ содержит информацию о состоянии запроса, также может содержать запрошенное содержимое.
Два метода запроса HTTP: GET и POST
Два часто используемых метода для запроса-ответа между клиентом и сервером: GET и POST.
- GET - Запрашивает данные из указанного ресурса
- POST - Отправляет данные для обработки указанному ресурсу
Метод GET
Обратите внимание, что строка запроса (пары name/value) отправляется в URL запроса GET:
/test/demo_form.html?name1=value1&name2=value2
Некоторые другие примечания по запросам GET:
- GET запросы могут быть кэшированы
- GET запросы остаются в истории браузера
- GET запросы могут быть в закладках
- GET запросы никогда не должны использоваться при работе с конфиденциальными данными
- GET запросы имеют ограничения длины
- GET запросы следует использовать только для получения данных
Метод POST
Обратите внимание, что строка запроса (пары name/value) отправляется в теле сообщения HTTP запроса POST:
POST /test/demo_form.html HTTP/1.1
Host: schoolsw3.com
name1=value1&name2=value2
Некоторые другие заметки о почтовых запросах:
- POST запросы не кэшируются
- POST запросы не остаются в истории браузера
- POST запросы не могут быть помечены закладками
- POST запросы не имеют ограничений по длине данных
Сравнение GET и POST
В следующей таблице сравниваются два метода HTTP: GET и POST.
| GET | POST | |
|---|---|---|
| Возврат Кнопка/Перезагрузка | Безвредный | Данные будут повторно отправлены (браузер должен предупредить пользователя о том, что данные будут повторно отправлены) |
| Закладка | Могут быть закладки | Не могут быть закладки |
| Кэширование | Может быть кэширован | Не кэшировать |
| Тип кодировки | application/x-www-form-urlencoded | application/x-www-form-urlencoded или multipart/form-data. Использовать кодировку для двоичных данных |
| История | Параметры остаются в истории браузера | Параметры не сохраняются в истории браузера |
| Ограничения на длину данных | Да, при отправке данных метод GET добавляет данные в URL; длина URL адреса ограничена (Максимальная длина URL составляет 2048 символов) | Не ограничивать |
| Ограничения типа данных | Только символы ASCII | Не ограничивать. Двоичные данные также разрешены |
| Безопасность | GET менее безопасен по сравнению с POST, поскольку отправляемые данные являются частью URL Никогда не используйте GET при отправке паролей или другой конфиденциальной информации! |
POST немного безопаснее, чем GET, потому что параметры не хранятся в истории браузера или в журналах веб сервера |
| Видимость | Данные видны всем в URL | Данные не отображаются в URL |
Другие методы запроса HTTP
В следующей таблице перечислены некоторые другие методы запроса HTTP:
| Метод | Описание |
|---|---|
| HEAD | То же, что и GET, но возвращает только заголовки HTTP, а не тело документа |
| PUT | Загружает представление указанного URI |
| DELETE | Удаляет указанный ресурс |
| OPTIONS | Возвращает методы HTTP, поддерживаемые сервером |
| CONNECT | Преобразует соединение запроса в прозрачный туннель TCP/IP |
