HyperText Transfer Protocol#
Puertos que utiliza en la capa de transporte#
http 80/tcp www
https 443/tcp
URL - Uniform Resource Locator#
Es un identificador global que ayuda a ubicar un recurso en una red.
Los elementos especificados entre corchetes ([
y ]
) son opcionales.
protocolo:[//[usuario[:contraseña]@]servidor[:puerto]][/ruta][?argumentos][#fragmento]
Una URL se compone de los siguientes elementos:
abcde://usuario:contraseña@example.com:12345/ruta/hacia/recurso?arg=valor#identificador
└─┬─┘ └────────┬───────┘ └────┬────┘ └─┬─┘└────────┬────────┘ └───┬───┘ └─────┬─────┘
protocolo autenticación servidor puerto ruta args fragmento
Elemento | Descripción |
---|---|
Protocolo | Identifica el protocolo a utilizar para la transmisión y recepción de datos |
Autenticación (* ) |
Especifica las credenciales que deben ser enviadas para tener acceso al recurso |
Servidor | Nombre de host, nombre DNS o dirección IP del servidor que hospeda el recurso |
Puerto (* ) |
Puerto de conexión donde el servicio está en escucha |
Ruta | Ruta donde se ubica el recurso |
Argumentos (* ) |
Argumentos necesarios para obtener y desplegar el recurso solicitado |
Fragmento (* ) |
Identificador utilizado para hacer referencia a una parte específica del documento solicitado |
*
: Opcional
Petición HTTP (request)#
Son los datos que el cliente envía al servidor para solicitar el recurso
Respuesta HTTP (response)#
Son los datos que el servidor envía al cliente para entregar el recurso solicitado
Cabecera y cuerpo#
Métodos HTTP#
Método | Descripción |
---|---|
OPTIONS |
Muestra los métodos disponibles en el servidor |
HEAD |
Pide que el servidor únicamente regrese las cabeceras asociadas a la respuesta de la petición |
GET |
Pide un recurso y el servidor lo envía |
POST |
Manda información al servidor utilizando formularios para establecer los parámetros y valores que se enviarán |
Método | Petición | Respuesta |
---|---|---|
OPTIONS |
Cabeceras | Cabeceras (Allow ) |
HEAD |
Cabeceras | Cabeceras |
GET |
Cabeceras | Cabeceras y Cuerpo |
POST |
Cabeceras y Cuerpo | Cabeceras y Cuerpo |
$ curl -v# 'http://www.example.com/'
* Hostname was NOT found in DNS cache
* Trying 93.184.216.34...
* Connected to www.example.com (93.184.216.34) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.38.0
> Host: www.example.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Cache-Control: max-age=604800
< Content-Type: text/html
< Date: Thu, 01 Mar 2018 12:13:14 GMT
< Etag: "1541025663+ident"
< Expires: Thu, 07 Mar 2018 15:16:17 GMT
< Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
* Server ECS (ftw/FBE4) is not blacklisted
< Server: ECS (ftw/FBE4)
< Vary: Accept-Encoding
< X-Cache: HIT
< Content-Length: 1270
<
<!DOCTYPE html>
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type="text/css">
/* ... */
</style>
</head>
<body>
<div>
<h1>Example Domain</h1>
<p>
This domain is established to be used for illustrative examples in documents.
You may use this domain in examples without prior coordination or asking for permission.
</p>
<p><a href="http://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>
* Connection #0 to host www.example.com left intact
Códigos de estado#
Cada vez que el cliente envía una petición al servidor, este incluye un código de estado y un mensaje informativo en la primer línea de las cabeceras de la respuesta
Código | Mensaje | Descripción |
---|---|---|
Mensajes informativos | ||
1xx | (varios mensajes) | Menciona al cliente que la información fue recibida correctamente |
Códigos de éxito | ||
200 | OK |
El servidor recibió la petición correctamente y entrega una respuesta |
Códigos de redirección | ||
301 | Moved permanently |
El servidor menciona que el recurso tiene una nueva URL definitiva |
302 | Found |
El servidor indica que el recurso se encuentra por el momento en otra URL |
_Error del cliente | ||
400 | Bad Request |
El cliente ha enviado al servidor una petición inválida o mal formada |
401 | Authorization Required |
El recurso requiere autenticación HTTP para ser mostrado |
403 | Forbidden |
El recurso no puede ser mostrado por falta de privilegios de acceso |
404 | Not Found |
El recurso no puede ser mostrado porque no fue encontrado |
408 | Request Timeout |
El servidor no recibió la petición en el tiempo máximo de espera |
Error del servidor | ||
500 | Internal Server Error |
Ocurrió un error interno del servidor y el recurso no puede ser mostrado |
503 | Service Unavailable |
El servicio no está disponible |