Чтобы выполнить запрос OPTIONS с помощью Curl, вам нужно передать параметр командной строки -X OPTIONS в запрос Curl. Браузеры отправляют запросы OPTIONS, когда делают CORS-запрос к другому источнику. Запрос OPTIONS не возвращает никаких данных. Вся информация возвращается в заголовках ответа.
1 2 3 4 5 | curl https://api.example.com/api/v1/requests -X OPTIONS -H "Access-Control-Request-Method: POST" -H "Access-Control-Request-Headers: content-type" -H "Origin: https://example.com" |
В этом примере запроса Curl OPTIONS мы отправляем запрос OPTIONS на URL example.com.
Что такое Curl?
Curl - это инструмент командной строки, доступный для Linux, Windows и macOS, а также кроссплатформенная библиотека (libcurl), которую можно использовать практически с любым приложением. Он поддерживает более 25 протоколов, включая HTTP, HTTPS, FTP и SFTP. Curl имеет встроенную поддержку SSL, проверку сертификатов, HTTP Cookies и аутентификацию пользователей.
Что такое HTTP OPTIONS?
Метод HTTP OPTIONS - это один из девяти стандартных методов запроса Hypertext Transfer Protocol (HTTP), используемый для описания вариантов связи с целевым ресурсом. HTTP OPTIONS представляет собой запрос информации о вариантах связи, доступных в цепочке запрос/ответ, идентифицированной Request-URI. Метод HTTP OPTIONS позволяет клиенту определить опции или требования, связанные с ресурсом, или возможности сервера, не подразумевая действия с ресурсом и не инициируя поиск ресурса. Ответы на метод OPTIONS не подлежат кэшированию. Метод HTTP OPTIONS определен как идемпотентный, что означает, что несколько одинаковых запросов OPTIONS должны иметь тот же эффект, что и один запрос. Когда вы отправляете данные в другой домен по соображениям безопасности, браузеры обычно отправляют "предполётный" запрос HTTP OPTIONS на целевой сервер, прежде чем отправить туда данные.
Что такое CORS?
Запрос OPTIONS - это предварительный запрос, часть CORS (Cross-Origin Resource Sharing). CORS - это механизм, основанный на заголовках HTTP, который позволяет серверу указать любой другой источник, из которого браузер должен получать ресурсы или отправлять данные. Эти источники могут отличаться от текущего по имени хоста, схеме HTTP или номеру порта. Внедрение CORS было связано с ограничениями политики "одного источника". Однооригинальная политика ограничивает взаимодействие ресурсов только с ресурсами, расположенными в том же домене. Это полезно, потому что благодаря политике same-origin, которой следуют XMLHttpRequest и fetch, JavaScript может обращаться только к тем URL, которые имеют такое же происхождение, как и место, где запущен скрипт.
Отправка HTTP-запроса OPTIONS с помощью Curl
Хотя спецификация CORS не определяет использование тела запроса, будущие расширения HTTP могут использовать тело запроса OPTIONS для выполнения более детальных запросов к серверу. Если целевой сервер не поддерживает расширение тела запроса OPTIONS, он может отклонить тело запроса.
Синтаксис запроса Curl OPTIONS
Общая форма команды Curl для отправки запроса OPTIONS выглядит следующим образом:
1 | curl [URL] -X OPTIONS [HEADERS] |
Пример запроса OPTIONS в Curl
Пример отправки запроса OPTIONS на эхо-адрес ReqBin с использованием параметра командной строки -X OPTIONS:
1 2 3 4 | curl https://api.example.com/api/v1/requests -X OPTIONS -H "Access-Control-Request-Method: POST" -H "Origin: https://example.com" |