Pruebas de seguridad: métodos HTTP

Métodos HTTP

El conjunto de métodos comunes para HTTP / 1.1 se define a continuación y este conjunto puede ampliarse según los requisitos. Estos nombres de métodos distinguen entre mayúsculas y minúsculas y deben utilizarse en mayúsculas.

S.No. Método y descripción
1

GET

Se utiliza para recuperar información de un servidor determinado mediante un URI determinado. Las solicitudes que utilizan GET solo deben recuperar datos y no deben tener ningún otro efecto en los datos.

2

HEAD

Es igual que GET, pero solo transfiere la línea de estado y la sección de encabezado.

3

POST

Se utiliza para enviar datos al servidor. Por ejemplo, información del cliente, carga de archivos, etc. mediante formularios HTML.

4

PUT

Reemplaza todas las representaciones actuales del recurso de destino con el contenido cargado.

5

DELETE

Elimina todas las representaciones actuales del recurso de destino proporcionadas por URI.

6

CONNECT

Establece un túnel al servidor identificado por un URI determinado.

7

OPTIONS

Describe las opciones de comunicación para el recurso de destino.

8

TRACE

Realiza una prueba de bucle de mensajes a lo largo de la ruta al recurso de destino.

Método GET

Recupera datos de un servidor web especificando parámetros en la parte URL de la solicitud. Este es el método principal utilizado para la recuperación de documentos. El siguiente ejemplo hace uso del método GET para recuperarhello.htm -

GET /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

La siguiente respuesta del servidor se emite contra la solicitud GET anterior:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Vary: Authorization,Accept
Accept-Ranges: bytes
Content-Length: 88
Content-Type: text/html
Connection: Closed

<html>
   <body>
      <h1>Hello, World!</h1>
   </body>
</html>

Método HEAD

Funcionalmente es similar a GET, excepto que el servidor responde con una línea de respuesta y encabezados, pero sin cuerpo de entidad. El siguiente ejemplo utiliza el método HEAD para obtener información de encabezado sobrehello.htm -

HEAD /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

La siguiente respuesta del servidor se emite contra la solicitud GET anterior:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Vary: Authorization,Accept
Accept-Ranges: bytes
Content-Length: 88
Content-Type: text/html
Connection: Closed

Puede notar que el servidor no envía ningún dato después del encabezado.

Método POST

Se utiliza cuando desea enviar algunos datos al servidor. Por ejemplo, actualización de archivo, datos de formulario, etc. El siguiente ejemplo simple hace uso del método POST para enviar datos de formulario al servidor que es procesado por unprocess.cgi y finalmente se devuelve una respuesta -

POST /cgi-bin/process.cgi HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Content-Type: text/xml; charset = utf-8
Content-Length: 88
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

<?xml version = "1.0" encoding = "utf-8"?>
<string xmlns = "http://clearforest.com/">string</string>

Script del lado del servidor process.cgi procesa los datos pasados ​​y envía la siguiente respuesta:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Vary: Authorization,Accept
Accept-Ranges: bytes
Content-Length: 88
Content-Type: text/html
Connection: Closed

<html>
   <body>
      <h1>Request Processed Successfully</h1>
   </body>
</html>

Método PUT

El método PUT se utiliza para solicitar al servidor que almacene el cuerpo de entidad incluido en una ubicación especificada por la URL dada. El siguiente ejemplo solicita al servidor que guarde la entidad-boy dada enhello.htm en la raíz del servidor -

PUT /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Connection: Keep-Alive
Content-type: text/html
Content-Length: 182

<html>
   <body>
      <h1>Hello, World!</h1>
   </body>
</html>

El servidor almacena el cuerpo de entidad dado en hello.htm archivo y envía la siguiente respuesta al cliente:

HTTP/1.1 201 Created
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Content-type: text/html
Content-length: 30
Connection: Closed

<html>
   <body>
      <h1>The file was created.</h1>
   </body>
</html>

Método DELETE

El método DELETE se utiliza para solicitar al servidor que elimine el archivo en una ubicación especificada por la URL dada. El siguiente ejemplo solicita al servidor que elimine el archivo dadohello.htm en la raíz del servidor -

DELETE /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Connection: Keep-Alive

El servidor borra el archivo mencionado hello.htm y envía la siguiente respuesta al cliente:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Content-type: text/html
Content-length: 30
Connection: Closed

<html>
   <body>
      <h1>URL deleted.</h1>
   </body>
</html>

Método CONNECT

El cliente lo utiliza para establecer una conexión de red a un servidor web a través de HTTP. El siguiente ejemplo solicita una conexión con un servidor web que se ejecuta en el host tutorialspoint.com -

CONNECT www.tutorialspoint.com HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

La conexión se establece con el servidor y la siguiente respuesta se envía al cliente:

HTTP/1.1 200 Connection established
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)

Método de OPCIONES

El cliente lo utiliza para averiguar cuáles son los métodos HTTP y otras opciones admitidas por un servidor web. El cliente puede especificar una URL para el método OPTIONS, o un asterisco (*) para referirse a todo el servidor. El siguiente ejemplo solicita una lista de métodos admitidos por un servidor web que se ejecuta en tutorialspoint.com:

OPTIONS * HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

El servidor envía información basada en la configuración actual del servidor, por ejemplo:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Type: httpd/unix-directory

Método TRACE

Se utiliza para hacer eco del contenido de una solicitud HTTP al solicitante, que se puede utilizar con fines de depuración en el momento del desarrollo. El siguiente ejemplo muestra el uso del método TRACE:

TRACE / HTTP/1.1
Host: www.tutorialspoint.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)

El servidor enviará el siguiente mensaje en respuesta a la solicitud anterior:

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Connection: close
Content-Type: message/http
Content-Length: 39

TRACE / HTTP/1.1
Host: www.tutorialspoint.com
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)