> For the complete documentation index, see [llms.txt](https://books.spartan-cybersec.com/cppj/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://books.spartan-cybersec.com/cppj/appweb-for-juniors/fundamentos-de-apis/metodos-http.md).

# Métodos HTTP

Los métodos HTTP son las acciones que se pueden realizar sobre los recursos disponibles en un servidor web. Cada método tiene un propósito específico y se utiliza en distintas situaciones. Comprender los métodos HTTP es crucial en el pentesting, ya que te permite interactuar con aplicaciones web de diversas maneras y descubrir posibles vulnerabilidades.

## <mark style="color:green;">**¿Qué son los Métodos HTTP?**</mark>

Los métodos HTTP definen la operación que se desea realizar en un recurso particular del servidor. A continuación, se describen los métodos más comunes y su relevancia en el contexto del pentesting.

### <mark style="color:green;">**1. GET**</mark>

El método GET solicita la representación de un recurso específico. Las solicitudes que usan GET solo deben recuperar datos y no modificar el estado del servidor.

* **Uso común**: Navegación web, carga de páginas y recuperación de información.
* **Importancia en pentesting**: Es el método más utilizado y permite mapear los recursos accesibles. Además, puede ser explotado mediante técnicas como el Cross-Site Scripting (XSS) si los parámetros de la URL no están debidamente sanitizados.

### <mark style="color:green;">**2. POST**</mark>

El método POST se utiliza para enviar datos al servidor para crear o actualizar un recurso. Los datos enviados se incluyen en el cuerpo de la solicitud.

* **Uso común**: Formularios de envío, autenticación de usuarios y carga de archivos.
* **Importancia en pentesting**: Es crucial para probar la inyección de SQL, Cross-Site Request Forgery (CSRF) y la manipulación de datos en formularios. Además, permite probar la robustez del servidor frente a grandes volúmenes de datos.

### <mark style="color:green;">**3. PUT**</mark>

El método PUT se utiliza para actualizar un recurso existente o crear uno nuevo si no existe en el servidor. Similar a POST, pero es idempotente, lo que significa que realizar la misma solicitud múltiples veces tendrá el mismo efecto.

* **Uso común**: Actualización de registros en bases de datos y gestión de recursos en APIs RESTful.
* **Importancia en pentesting**: Permite verificar la correcta implementación de controles de acceso y la validación de datos al actualizar recursos.

### <mark style="color:green;">**4. DELETE**</mark>

El método DELETE solicita la eliminación de un recurso específico del servidor.

* **Uso común**: Eliminación de cuentas, archivos y otros recursos.
* **Importancia en pentesting**: Es esencial para probar la robustez de los mecanismos de autorización y asegurar que solo los usuarios autorizados puedan eliminar recursos.

### <mark style="color:green;">**5. HEAD**</mark>

El método HEAD es idéntico a GET, pero sin el cuerpo de la respuesta. Se utiliza para obtener los encabezados de respuesta, sin descargar el contenido del recurso.

* **Uso común**: Verificación de recursos y prueba de conexiones sin transferir datos completos.
* **Importancia en pentesting**: Útil para recolectar información sobre los recursos sin atraer mucha atención al no descargar el contenido completo.

### <mark style="color:green;">**6. OPTIONS**</mark>

El método OPTIONS se utiliza para describir las opciones de comunicación disponibles para un recurso. Esto incluye los métodos HTTP permitidos.

* **Uso común**: Descubrimiento de capacidades del servidor.
* **Importancia en pentesting**: Permite identificar los métodos HTTP habilitados en el servidor y posibles configuraciones inseguras.

### <mark style="color:green;">**7. PATCH**</mark>

El método PATCH se utiliza para aplicar modificaciones parciales a un recurso. A diferencia de PUT, que reemplaza el recurso completo, PATCH solo actualiza los campos especificados.

* **Uso común**: Actualización parcial de recursos en APIs RESTful.
* **Importancia en pentesting**: Es crucial para probar la validación de datos y la seguridad en actualizaciones incrementales.

## <mark style="color:green;">**Otros Métodos Menos Comunes**</mark>

* **TRACE**: Se utiliza para realizar un loop-back de prueba que muestra la cadena de solicitud recibida por el servidor. Rara vez se utiliza, ya que puede ser explotado para ataques como Cross-Site Tracing (XST).
* **CONNECT**: Se utiliza para establecer un túnel de comunicación para conexiones proxy, como HTTPS. Su uso es específico y puede ser relevante en pruebas de seguridad de proxy y túneles.

## <mark style="color:green;">**Conclusión**</mark>

Entender los métodos HTTP y su correcto uso es esencial para cualquier pentester. Estos métodos permiten interactuar con aplicaciones web de diversas maneras, lo que facilita la identificación de vulnerabilidades y la explotación de fallos de seguridad. Al profundizar en el funcionamiento de cada método, podrás diseñar mejores estrategias de prueba y asegurar que las aplicaciones web sean más robustas y seguras.

4o
