2012-04-18 15 views
15

Todos los demás verbos tienen sentido para mí, pero no tengo mucho contexto para "post" como verbo. ¿Es como publicar como en la Oficina de correos (que tiene algún sentido, aunque parece un tramo) o publicar como publicación en un tablero de anuncios (tiene menos sentido para mí)? ¿Alguien sabe quién decidió "POST" y por qué fue seleccionado?¿Por qué el verbo HTTP POST se llama POST?

+3

Semánticamente hablando, es un verbo HTTP, no un verbo REST. –

+1

Porque DAR no suena tan pegadizo. * -ducks- * – BoltClock

+0

Gracias John, he editado el título. –

Respuesta

15

Bueno, "post como post sobre un tablón de anuncios" se acerca mucho a la respuesta, supongo. Al final, esa es exactamente una de esas funcionalidades para las que fue diseñado este método. POST siempre está destinado a publicar cosas en algún tipo de 'fábrica' para que las maneje; de ​​lo contrario, puede usar PUT. Vamos a echar un vistazo a RFC2616, Section 9.5:

El método POST se utiliza para solicitar que el servidor de origen acepta la entidad incluida en la solicitud como una nueva subordinado del recurso identificado por el Request-URI en la petición- Línea. POST se diseñado para permitir un método uniforme para cubrir las siguientes funciones:

- Annotation of existing resources; 

    - Posting a message to a bulletin board, newsgroup, mailing list, 
    or similar group of articles; 

    - Providing a block of data, such as the result of submitting a 
    form, to a data-handling process; 

    - Extending a database through an append operation. 

Por supuesto, esta no es la definición exacta de por qué se llama POST, pero creo que esto podría dar algunas pistas sobre el idea detrás de esto

Tal vez también podría echar un vistazo a algunos significados de la palabra 'post' (http://www.thefreedictionary.com/Post, la tercera definición) - de acuerdo a eso, puesto como un verbo puede significar

  • para enviar por correo (una letra o paquete)
  • para informar de las últimas noticias
  • para transferir (un artículo) a un libro mayor de contabilidad
  • para hacer las entradas necesarias en (un libro de contabilidad)

Y esto es exactamente lo que POST hace (metafóricamente). Si desea enviar un correo electrónico, deje que su proveedor de correo electrónico lo maneje y luego le informe sobre el estado. Y esta es también la diferencia entre PUT y POST: si el cliente está a cargo de manejar el recurso, usted usa PUT (porque sabe qué poner y dónde colocarlo).

Por lo tanto, teóricamente, si conocía la dirección IP de la persona a la que desea enviar el correo electrónico, no necesitaría que su proveedor encuentre estas cosas para usted. Pero ahora, usted sabe qué poner, pero no exactamente donde. Entonces, en este caso, usa POST. Usted 'informa al servidor de las últimas noticias' y el servidor decide dónde colocarlo. Así que puedes pensar que es como 'transferir un elemento' a un recurso que ya está presente (como un hilo en un foro o algo así); solo quieres agregar algo.

Espero que esto tenga algún sentido ...

+0

Este es un desglose impresionante de por qué el POST tiene sentido. Supongo que a menos que Tim Berners-Lee divague, esto es tan definitivo como lo que va a ser ... –

+0

@KelseyInnis Siempre estoy contento de ayudar :) Y también espero que el Sr. Berners-Lee no se ría demasiado de mí por esto ... :-P – Quasdunk

+1

Por un momento pensé que estaba en english.stackexchange.com –

0

No creo que publicar como en 'publicar una carta' sea demasiado extenso. Una solicitud POST es un mensaje que contiene datos después de todo. En cuanto a la OMS, los verbos vienen de HTTP, por lo que los orígenes serían la especificación HTML escrito por Tim Berners-Lee en 1995.

1

El método POST se utiliza para solicitar que el servidor de origen acepte la entidad incluida en la solicitud como un nuevo subordinado del recurso identificado por el URI de solicitud en la línea de solicitud. POST está diseñado para permitir un método uniforme para cubrir las siguientes funciones:

  • Anotación de los recursos existentes;
  • Publicar un mensaje en un tablero de anuncios, un grupo de noticias, una lista de correo o un grupo similar de artículos;
  • Proporcionando un bloque de datos, como el resultado de enviar un formulario, a un proceso de manejo de datos;
  • Extensión de una base de datos a través de una operación de adición.

W3/POST

RESTO pide a los desarrolladores utilizar métodos HTTP de forma explícita y de una manera que es consistente con la definición del protocolo. Este principio básico de diseño REST establece un mapeo uno a uno entre operaciones de creación, lectura, actualización y eliminación (CRUD) y métodos HTTP. Según este mapeo:

  • Para crear un recurso en el servidor, use POST.
  • Para recuperar un recurso, use GET.
  • Para cambiar el estado de un recurso o actualizarlo, use PUT.
  • Para eliminar o eliminar un recurso, utilice SUPRIMIR.

IBM/REST

Cuando estamos publicando, que realmente están enviando nuevos datos (creación de recursos), pero no va a conseguirlo o llamando acerca de las actualizaciones o pidiendo la trituración de nuestros documnets mayores.