-k, --insecure :se stai eseguendo curl su un sito web che utilizza un certificato SSL autofirmato quindi curl ti darà un errore perché curl non è riuscito a verificare il certificato . In tal caso, potresti utilizzare -k
o --insecure
flag per saltare la convalida del certificato .
Esempio:
[[email protected]]$ 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.
[[email protected]]$ 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 :Questo flag includerà l'intestazione http. Di solito le intestazioni http sono costituite da nome del server, data, tipo di contenuto ecc.
Esempio:
[[email protected]]$ 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>
[[email protected]]$ 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, --request :Questo flag verrà utilizzato per inviare richieste personalizzate al server. La maggior parte delle volte facciamo GET
, HEAD
e POST
. Ma se hai bisogno di una richiesta specifica come PUT
, FTP
, DELETE
allora puoi usare questo flag. L'esempio seguente invierà una richiesta di eliminazione a google.com
Esempio:
[[email protected]]$ 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>`
È chiaramente documentato qui.
Modifica
Dalla pagina man
-k, --insecure
(TLS) Per impostazione predefinita, ogni connessione SSL creata da curl viene verificata come sicura. Questa opzione consente a curl di procedere e operare anche per connessioni al server altrimenti considerate non sicure.
La connessione al server viene verificata assicurandosi che il certificato del server contenga il nome corretto e verifica con successo utilizzando l'archivio certificati.
Ciò significa che con -k
, curl
accetterà connessioni a HTTPS anche se ci sono errori di certificato (certificato obsoleto, certificato auto-emesso, ecc.)
-i, --include
Includere le intestazioni della risposta HTTP nell'output. Le intestazioni di risposta HTTP possono includere elementi come il nome del server, i cookie, la data del documento, la versione HTTP e altro...
Per visualizzare le intestazioni della richiesta, considera l'opzione -v, --verbose.
Vedi anche -v, --verbose
Non c'è molto che posso dire su questo in linguaggio profano. Se non hai familiarità con le intestazioni di risposta HTTP, qui puoi trovare maggiori informazioni.
-X, --request
(HTTP) Specifica un metodo di richiesta personalizzato da utilizzare durante la comunicazione con il server HTTP. Verrà utilizzato il metodo di richiesta specificato invece del metodo altrimenti utilizzato (che per impostazione predefinita è GET). Leggi la specifica HTTP 1.1 per dettagli e spiegazioni. Le comuni richieste HTTP aggiuntive includono PUT e DELETE, ma tecnologie correlate come WebDAV offrono PROPFIND, COPY, MOVE e altro.
Normalmente non hai bisogno di questa opzione. Tutti i tipi di richieste GET, HEAD, POST e PUT vengono invece richiamati utilizzando le opzioni della riga di comando dedicate.
Questa opzione cambia solo la parola effettiva utilizzata nella richiesta HTTP, non altera il modo in cui curl si comporta. Quindi, per esempio, se vuoi fare una corretta richiesta HEAD, usare -X HEAD non sarà sufficiente. Devi usare l'opzione -I, --head.
La stringa del metodo che imposti con -X, --request verrà utilizzata per tutte le richieste, che se ad esempio utilizzi -L, --location potrebbe causare effetti collaterali indesiderati quando curl non modifica il metodo della richiesta in base ai codici di risposta HTTP 30x - e simili.
(FTP) Specifica un comando FTP personalizzato da utilizzare al posto di LIST quando si creano elenchi di file con FTP.
(POP3) Specifica un comando POP3 personalizzato da utilizzare al posto di LIST o RETR. (Aggiunto in 7.26.0)
(IMAP) Specifica un comando IMAP personalizzato da utilizzare al posto di LIST. (Aggiunto in 7.30.0)
(SMTP) Specifica un comando SMTP personalizzato da utilizzare al posto di HELP o VRFY. (Aggiunto in 7.34.0)
Se questa opzione viene utilizzata più volte, verrà utilizzata l'ultima.
Quando usi curl per accedere a una pagina web, in realtà sta inviando la richiesta GET al server. Esistono altri tipi di richiesta che possono essere utilizzati e -X
è il modo per specificarlo. Come notato sopra, questo comando di solito non è necessario. Ad esempio, se hai bisogno di una richiesta POST puoi usare -d
invece di usare -X
. Senza ulteriori informazioni è difficile dire perché hai bisogno di -X
nella tua chiamata API.