2009-04-19 12 views

Respuesta

58

Primero debe echar un vistazo a HTTP 1.1 specification, especialmente la sección method definitions.

  • OPCIONES Obtener información acerca de cómo el servidor permite comunicarse.

    Solicitud:

    OPTIONS * HTTP/1.1 
    Host: example.com 
    

    Respuesta:

    HTTP/1.1 200 OK 
    Date: … 
    Allow: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE 
    Content-Length: 0 
    
  • GET recuperar un recurso.

    Solicitud:

    GET /foo/bar HTTP/1.1 
    Host: example.com 
    

    Respuesta:

    HTTP/1.1 200 OK 
    Date: … 
    Content-Type: text/html;charset=utf-8 
    Content-Length: 12345 
      
    <!DOCTYPE … 
    
  • CABEZA Como GET, pero devuelve sólo el encabezado HTTP.

    Solicitud:

    HEAD /foo/bar HTTP/1.1 
    Host: example.com 
    

    Respuesta:

    HTTP/1.1 200 OK 
    Date: … 
    Content-Type: text/html;charset=utf-8 
    Content-Length: 12345 
    
  • POSTAL Crear un nuevo recurso.

    Solicitud:

    POST /foo/bar HTTP/1.1 
    Host: example.com 
    Content-Type: application/x-www-form-urlencoded 
      
    action=addentry&subject=Hello,%20World 
    

    Respuesta:

    HTTP/1.1 201 Created 
    Date: … 
    Content-Length: 0 
    Location: http://example.com/foo/bar   
    
  • PUT Enviar datos al servidor.

  • ELIMINAR Eliminar un recurso existente.

  • TRACE Devuelve los encabezados de solicitud enviados por el cliente.

    Solicitud:

    TRACE /foo/bar HTTP/1.1 
    Host: example.com 
    

    Respuesta:

    HTTP/1.1 200 OK 
    Date: … 
    Content-Length: 17 
      
    Host: example.com 
    

No sé exactamente si estos ejemplos son correctos. Siéntase libre de corregirlos.

+1

muy buena respuesta :) – dfa

+0

y cómo escribir un método de envío –

+0

¿También cómo probar estos métodos? ¿Escribir dónde obtener la respuesta? –

13

Usted puede experimentar con los diferentes métodos HTTP utilizando la herramienta de línea de comandos cURL. Por ejemplo:

curl --head http://www.google.co.uk 

HTTP/1.1 200 OK 
Cache-Control: private, max-age=0 
Date: Sun, 19 Apr 2009 15:33:24 GMT 
Expires: -1 
Content-Type: text/html; charset=ISO-8859-1 
Set-Cookie: PREF=ID=a2a414b9a84c8ffd:TM=1240155204:LM=1240155204:S=16kZnqzeSxIJT3jv; expires=Tue, 19-Apr-2011 15:33:24 GMT; path=/; domain=.google.co.uk 
Server: gws 
Transfer-Encoding: chunked 
  • La opción -X le permite especificar un método HTTP GET distinta.
+2

Buena pista, + 1. Tenga en cuenta que no todos los navegadores admiten todos los métodos. Es por eso que, por ejemplo, Ruby on Rails en realidad solo usa GET y POST, y no PUT y DELETE. Si curl no es compatible con todos los métodos, entonces uno puede incluso usar telnet para invocarlos manualmente: ver, por ejemplo, http://tonycode.com/wiki/index.php?title=Making_HTTP_requests_via_telnet – Arjan

+0

De acuerdo, lo he hecho con Telnet antes . –

Cuestiones relacionadas