Linux에서 "curl -k -i -X"는 무엇을 의미합니까?

Linux에서 "curl -k -i -X"는 무엇을 의미합니까?

매뉴얼 페이지를 읽었 Curl지만 이러한 매개변수(k, i 및 X)의 의미를 이해할 수 없습니다. REST API 호출에 사용되는 것을 보았지만 이 세 가지 매개변수의 기능을 설명할 수 있는 사람이 있습니까? 문서에는 명확하지 않습니다.

미리 감사드립니다.

답변1

-k, --안전하지 않음: 사용하고 있는 웹사이트를 컬링하고 싶은 경우자체 서명된 SSL 인증서그러면 컬이 오류를 발생시킬 것입니다컬이 인증서를 확인할 수 없습니다. 이 경우 다음을 사용 -k하거나 --insecure태그를 지정할 수 있습니다.인증서 확인 건너뛰기.

예:

[root@arif]$ curl --head https://xxx.xxx.xxx.xxx/login

curl: (60) Peer's Certificate issuer is not recognized. 
More details here: http://curl.haxx.se/docs/sslcerts.html 
curl performs SSL certificate verification by default, using a 
"bundle" of Certificate Authority (CA) public keys (CA certs).
If the default bundle file isn't adequate, you can specify an 
alternate file using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented 
in the bundle, the certificate verification probably failed 
due to a problem with the certificate (it might be expired, 
or the name might not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate,
use the -k (or --insecure) option.

[root@arif]$ curl -k --head https://xxx.xxx.xxx.xxx/login

HTTP/1.1 302 Moved Temporarily
Date: Thu, 07 Dec 2017 04:53:44 GMT
Transfer-Encoding: chunked
Location: https://xxx.xxx.xxx.xxx/login 
X-FRAME-OPTIONS: SAMEORIGIN
Set-Cookie: JSESSIONID=xxxxxxxxxxx; path=/; HttpOnly

-i, --include: 이 플래그에는 http 헤더가 포함됩니다. 일반적으로 http 헤더는 서버 이름, 날짜, 콘텐츠 유형 등으로 구성됩니다.

예:

[root@arif]$ curl https://google.com

<HTML><HEAD><meta http-equiv="content-type" content="text/html charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="https://www.google.com/">here</A>. </BODY></HTML>

[root@arif]$ curl -i https://google.com

HTTP/1.1 301 Moved Permanently
Location: https://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Thu, 07 Dec 2017 05:13:44 GMT
Expires: Sat, 06 Jan 2018 05:13:44 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 220
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Alt-Svc: hq=":443"; ma=2592000; quic=51303431; quic=51303339;
quic=51303338; quic=51303337; quic=51303335,quic=":443"; ma=2592000;
v="41,39,38,37,35"
<HTML><HEAD><meta http-equiv="content-.....

-X, --요청: 이 플래그는 서버에 사용자 정의 요청을 보내는 데 사용됩니다. 대부분의 경우 GET,, HEAD및 을 수행합니다 POST. 그러나 예 를 들어 특정 요청이 필요한 경우 PUT이 플래그를 사용할 수 있습니다. 다음 예에서는 google.com에 제거 요청을 보냅니다.FTPDELETE

예:

[root@arif]$ curl -X DELETE google.com

..........................
<p><b>405.</b> <ins>That’s an error.</ins>
<p>The request method <code>DELETE</code> is inappropriate for the URL
<code>/</code>.  <ins>That’s all we know.</ins>`

답변2

분명한 기록이 있다여기.

편집하다

매뉴얼 페이지에서

-k, --안전하지 않음

(TLS) 기본적으로 컬에 의해 설정된 모든 SSL 연결은 안전한 것으로 확인됩니다. 이 옵션을 사용하면 안전하지 않은 것으로 간주되는 다른 서버 연결에 대해서도 컬이 진행되고 작동할 수 있습니다.

서버 인증서에 올바른 이름이 포함되어 있는지 확인하고 인증서 저장소를 사용하여 유효성을 성공적으로 확인하여 서버 연결을 확인하세요.

즉 , 인증서 오류(만료된 인증서, 자체 발급 인증서 등)가 있어도 -kHTTPS 연결이 허용됩니다.curl

-i, --include

출력에 HTTP 응답 헤더를 포함합니다. HTTP 응답 헤더에는 서버 이름, 쿠키, 문서 날짜, HTTP 버전 등이 포함될 수 있습니다.

요청 헤더를 보려면 -v, --verbose 옵션을 고려하십시오.

-v, --verbose도 참조하세요.

나는 평신도의 관점에서 이것에 대해 많이 말할 수 없습니다. HTTP 응답 헤더에 익숙하지 않은 경우이것자세한 내용은 여기에서 확인하실 수 있습니다.

-X, --요청

(HTTP) HTTP 서버와 통신할 때 사용할 사용자 정의 요청 방법을 지정합니다. 사용된 다른 방법 대신 지정된 요청 방법이 사용됩니다(기본값은 GET). 자세한 내용과 설명은 HTTP 1.1 사양을 읽어보세요. 일반적인 추가 HTTP 요청에는 PUT 및 DELETE가 포함되지만 WebDAV와 같은 관련 기술은 PROPFIND, COPY, MOVE 등을 제공합니다.

일반적으로 이 옵션은 필요하지 않습니다. 다양한 GET, HEAD, POST 및 PUT 요청은 특수 명령줄 옵션을 사용하여 호출됩니다.

이 옵션은 HTTP 요청에 사용된 실제 단어만 변경하며, 컬의 동작 방식은 변경하지 않습니다. 따라서 예를 들어 올바른 HEAD 요청을 수행하려는 경우 -X HEAD를 사용하는 것만으로는 충분하지 않습니다. -I, --head 옵션을 사용해야 합니다.

-X, --request로 설정한 메서드 문자열은 모든 요청에 ​​사용됩니다. 예를 들어 -L, --location을 사용하면 컬이 HTTP 30x 응답에 따라 요청 메서드를 변경하지 않을 때 예상치 못한 부작용이 발생할 수 있습니다. - 그리고 비슷해요.

(FTP) FTP를 사용하여 LIST 대신 파일 목록을 수행할 때 사용할 사용자 정의 FTP 명령을 지정합니다.

(POP3) LIST 또는 RETR 대신 사용할 사용자 정의 POP3 명령을 지정합니다. (7.26.0에서 추가됨)

(IMAP) LIST 대신 사용할 사용자 정의 IMAP 명령을 지정합니다. (7.30.0에 추가됨)

(SMTP) HELP 또는 VRFY 대신 사용할 사용자 정의 SMTP 명령을 지정합니다. (7.34.0에서 추가됨)

이 옵션을 여러 번 사용하면 마지막 옵션이 사용됩니다.

컬을 사용하여 웹 페이지에 액세스하면 실제로 서버에 GET 요청을 보냅니다. 사용할 수 있는 다른 유형의 요청과 -X그러한 요청을 지정하는 방법이 있습니다 . 위에서 언급했듯이 이 명령은 일반적으로 필요하지 않습니다. 예를 들어 POST 요청이 필요한 경우 를 -d사용하는 대신 을 사용할 수 있습니다. 자세한 정보가 없으면 API 호출에서 사용해야 -X하는 이유를 말하기가 어렵습니다 .-X

관련 정보