Skip to content

Commit 6ca5c61

Browse files
committed
Added curl section
1 parent 29cf27a commit 6ca5c61

2 files changed

Lines changed: 86 additions & 1 deletion

File tree

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
# CURL
2+
3+
El comando `curl` es una herramienta para transferir datos de cliente a servidor o servidor a cliente. Admite una gran variedad de protocolos como FTP, HTTP, IMAP, LDAP, POP3, SCP, SMTP, etc, por lo que soporta características como uso de proxies, autenticación, subida de ficheros, conexiones SSL, cookies y muchas otras más.
4+
5+
Vamos a ver casos prácticos enfocados a peticiones HTTP y HTTPS.
6+
7+
Para ejecutar una petición GET a un servidor y mostrar su respuesta ejecutaremos el comando `curl` seguido de la URL del servidor. Ejemplo:
8+
9+
```shell
10+
$ curl https://www.google.es
11+
```
12+
13+
Si queremos guardar la respuesta utilizaremos el flag `-o` (`--output`) indicando la ruta de un fichero:
14+
15+
```shell
16+
$ curl -o ./google-response.txt https://www.google.es
17+
```
18+
19+
> Alternativamente podemos utilizar el comando redirección (`>` o `>>`) para redirigir la salida a la ruta del fichero que queremos guardar.
20+
21+
Si queremos descargarnos un fichero con el nombre de la URL podemos utilizar el flag `-O` (`--remote-name`) para indicar a curl que descargue el contenido de la respuesta en un fichero con el mismo nombre que el de la URL. Ejemplo para descargar una imagen:
22+
23+
```shell
24+
$ curl -O https://upload.wikimedia.org/wikipedia/commons/3/35/Tux.svg
25+
```
26+
27+
> Podemos utilizar el flag `-L` (`--location`) junto a `-O` para seguir redirecciones.
28+
29+
Si descargamos un fichero grande podemos cortar la descarga y continuarla más adelante utilizando el flag `-C` (`--continue-at <offset>`) con el valor `-` para utilizar el fichero existente:
30+
31+
```shell
32+
## Limitamos la velocidad de descarga a 1Mbps (el fichero pesa 18MB)
33+
$ curl -O --limit-rate 1M https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_1920_18MG.mp4
34+
35+
## Cortamos la descarga con Ctrl + C
36+
^C
37+
38+
## Continuamos la descarga añadiendo "-C -"
39+
$ curl -O --limit-rate 1M -C - https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_1920_18MG.mp4
40+
```
41+
42+
> Si no queremos mostrar barra de progreso al descargar un fichero añadiremos el flag `-s` (`--silent`).
43+
44+
Podemos hacer debugging de las cabeceras y conexión utilizando el flag `-v` (`--verbose`):
45+
46+
```shell
47+
curl -v https://www.google.es
48+
```
49+
50+
Si queremos mostrar sólo las cabeceras de respuesta podemos utilizar el flag `-I`:
51+
52+
```shell
53+
$ curl -I https://www.google.es
54+
```
55+
56+
Podemos cambiar el _user agent_ utilizando el flag `-A` (`--user-agent`):
57+
58+
```shell
59+
## Comprueba las respuestas con y sin el flag. Esta API es capaz de detectar peticiones curl.
60+
$ curl -A "None" https://wttr.in/
61+
```
62+
63+
Podemos modificar las headers de petición utilizando el flag `-H <header>: <value>` por cada cabecera. Ejemplo:
64+
65+
```shell
66+
## La siguiente API es capaz de responder en diferentes formatos (JSON, XML, HTML, YAML).
67+
$ curl -H "Accept: application/xml" mockbin.org/request
68+
$ curl -H "Accept: application/json" mockbin.org/request
69+
```
70+
71+
Para realizar peticiones con diferente verbo HTTP (POST, PUT, DELETE, PATCH, etc) utilizaremos el flag `-X <method>`. El siguiente ejemplo realiza una petición POST con datos enviados como JSON utilizando el flag `-d` (`--data`):
72+
73+
```shell
74+
curl -X POST -d '{"title": "Post title", "body": "Post content", "userId": 1}' -H 'Content-Type: application/json' https://jsonplaceholder.typicode.com/posts
75+
```
76+
77+
> Podemos especificar si utilizar HTTP1.1 o HTTP2 mediante los flags `--http1.1` y `--http2` respectivamente.
78+
79+
Si necesitamos guardar las cabeceras de respuesta podemos utilizar el flag `-D` (`--dump-header <filename>`) y el nombre de un fichero.
80+
81+
```shell
82+
$ curl -D mockbin-response-headers.txt mockbin.org/request
83+
```
84+
85+
> Si utilizamos `-D -` volcará las cabeceras en la salida de consola.

00-fundamentos-linux/02-trabajando-con-la-cli/01-introduccion-a-bash.md renamed to 00-fundamentos-linux/02-trabajando-con-la-cli/02-introduccion-a-bash.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Bash Scripting
1+
# Introducción a BASH
22

33
### Definición
44

0 commit comments

Comments
 (0)