GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es el significado de curl -k -i -X ​​en Linux?

-k, --inseguro :si está haciendo curl en un sitio web que utiliza un certificado SSL autofirmado entonces curl le dará un error como curl no pudo verificar el certificado . En ese caso, podría usar -k o --insecure marca para omitir la validación del certificado .

Ejemplo:

[[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 :Esta bandera incluirá el encabezado http. Por lo general, el encabezado http consta del nombre del servidor, la fecha, el tipo de contenido, etc.

Ejemplo:

[[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, --solicitud :Esta bandera se usará para enviar una solicitud personalizada al servidor. La mayoría de las veces hacemos GET , HEAD y POST . Pero si necesita una solicitud específica como PUT , FTP , DELETE entonces puedes usar esta bandera. El siguiente ejemplo enviará una solicitud de eliminación a google.com

Ejemplo:

[[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>`

Está claramente documentado aquí.

Editar

Desde la página man

-k, --inseguro

(TLS) De manera predeterminada, se verifica que todas las conexiones SSL que curl realiza sean seguras. Esta opción permite que curl continúe y funcione incluso para conexiones de servidor que de otro modo se considerarían inseguras.

La conexión del servidor se verifica asegurándose de que el certificado del servidor contenga el nombre correcto y se verifica correctamente usando el almacén de certificados.

Esto significa que con -k , curl aceptará conexiones a HTTPS incluso si hay errores de certificado (certificado obsoleto, certificado autoemitido, etc.)

-i, --include

Incluya los encabezados de respuesta HTTP en la salida. Los encabezados de respuesta HTTP pueden incluir cosas como el nombre del servidor, cookies, fecha del documento, versión HTTP y más...

Para ver los encabezados de las solicitudes, considere la opción -v, --verbose.

Véase también -v, --verbose

No hay mucho que pueda decir sobre esto en lenguaje sencillo. Si no está familiarizado con los encabezados de respuesta HTTP, aquí es donde puede encontrar más información.

-X, --solicitud

(HTTP) Especifica un método de solicitud personalizado para usar al comunicarse con el servidor HTTP. Se utilizará el método de solicitud especificado en lugar del método utilizado de otro modo (que por defecto es GET). Lea la especificación HTTP 1.1 para obtener detalles y explicaciones. Las solicitudes HTTP adicionales comunes incluyen PUT y DELETE, pero tecnologías relacionadas como WebDAV ofrecen PROPFIND, COPY, MOVE y más.

Normalmente no necesita esta opción. Todo tipo de solicitudes GET, HEAD, POST y PUT se invocan más bien mediante el uso de opciones de línea de comandos dedicadas.

Esta opción solo cambia la palabra real utilizada en la solicitud HTTP, no altera la forma en que se comporta curl. Entonces, por ejemplo, si desea realizar una solicitud HEAD adecuada, usar -X HEAD no será suficiente. Necesitas usar la opción -I, --head.

La cadena de método que establezca con -X, --request se usará para todas las solicitudes, que si, por ejemplo, usa -L, --location puede causar efectos secundarios no deseados cuando curl no cambia el método de solicitud de acuerdo con los códigos de respuesta HTTP 30x:y similares.

(FTP) Especifica un comando FTP personalizado para usar en lugar de LIST al hacer listas de archivos con FTP.

(POP3) Especifica un comando POP3 personalizado para usar en lugar de LIST o RETR. (Agregado en 7.26.0)

(IMAP) Especifica un comando IMAP personalizado para usar en lugar de LISTA. (Agregado en 7.30.0)

(SMTP) Especifica un comando SMTP personalizado para usar en lugar de HELP o VRFY. (Agregado en 7.34.0)

Si esta opción se usa varias veces, se usará la última.

Cuando usa curl para acceder a una página web, en realidad está enviando la solicitud GET al servidor. Hay otros tipos de solicitudes que se pueden usar y -X es la manera de especificar esto. Como se indicó anteriormente, este comando generalmente no es necesario. Por ejemplo, si necesita una solicitud POST, puede usar -d en lugar de usar -X . Sin más información, es difícil decir por qué necesita -X en su llamada API.


Linux
  1. ¿Qué hace que Linux sea el sistema operativo sostenible?

  2. ¿Qué hace que la comunidad de Linux sea especial?

  3. Linux vs Unix:¿Cuál es la diferencia?

  4. ¿Cuál es el nivel de ejecución actual del sistema Linux?

  5. ¿Cuál es el propósito del archivo .bashrc en Linux?

¿Qué es el Shell en Linux?

¿Cuál es la diferencia entre Linux y Unix?

El comando curl de Linux

Los 10 mejores libros de Linux para leer en 2019

¿Cuál es la diferencia entre curl y Wget?

¿Qué es el comando matar en Linux?