Estoy trabajando en una solución analítica que almacena datos en un MongoDB. Actualmente tengo un javascript que usa un objeto XMLHTTPRequest para enviar datos a un archivo PHP usando el método GET.

El PHP a su vez crea / actualiza un documento en MongoDB.

¿Es esta una forma eficiente de hacer las cosas? Hay una mejor manera de hacerlo?

Si bien es solo un proyecto paralelo en este momento, quiero intentar hacer de esto una solución escalable desde el principio.

0
sicr 23 jun. 2011 a las 19:08

4 respuestas

La mejor respuesta

Como otros han dicho, hay una razón para usar POST debido a las limitaciones de los navegadores. Pero me gustaría hacer otra agresión.

POST tiene más sentido en términos de definiciones de métodos HTTP. Se supone que GET es seguro y no realiza cambios en el estado de su sistema (base de datos). Esto generalmente se aplica en los servicios, pero no tanto en el procesamiento de formularios HTML.

Algunos métodos (por ejemplo, HEAD, GET, OPTIONS y TRACE) se definen como seguros, lo que significa que están destinados solo a la recuperación de información y no deberían cambiar el estado del servidor. En otras palabras, no deberían tener efectos secundarios, más allá de efectos relativamente inofensivos como el registro, el almacenamiento en caché, la publicación de anuncios publicitarios o el incremento de un contador web. Por lo tanto, realizar solicitudes GET arbitrarias sin tener en cuenta el contexto del estado de la aplicación debe considerarse seguro.

Fuente

Lectura adicional:

Especificación HTTP - Definiciones de métodos

0
Paul DelRe 23 jun. 2011 a las 15:36

Por lo que parece que estás haciendo, tu implementación debería estar bien. Sin embargo, en mi humilde opinión, probablemente cambiaría el XHR de llegar a publicar simplemente para evitar problemas con el envío de datos largos. Aunque los servidores deberían poder manejar URL (incluida la cadena de consulta) de cualquier longitud, los navegadores generalmente solo admiten hasta aproximadamente 2k caracteres. Cualquier cosa sobre eso y tendrías problemas. POST no tiene esta limitación.

1
Jonathan Kuhn 23 jun. 2011 a las 15:17

Un GET tiene un tamaño limitado para el navegador, mientras que un POST no lo es.

Y no cambia mucho en el lado de PHP.

1
Mic 23 jun. 2011 a las 15:12

Lo que propongas debería estar bien.

Si va a usar JavaScript en otros sitios (mientras mantiene su php en un solo dominio), se encontrará con problemas con las políticas de dominio cruzado.

0
datasage 23 jun. 2011 a las 15:12