Recomendaciones para el paso de variables por GET y POST
Clasificado en:
Deberíamos usar GET:
- Si no nos importa que los parámetros se vean en la URL.
- Si queremos transferir los datos de la manera más rápida posible.
- Si el formulario HTML va a transferir variables de poco tamaño.
- Si queremos que el usuario pueda cambiar el contenido de la web a través de los parámetros de la URL.
Por su parte, deberíamos usar POST:
- Si no queremos que las variables se muestren en la URL.
- Si el formulario transfiere mucha información, o variables que tengan un tamaño considerable.
- Si la variables contienen carácteres que no son ASCII.
¿Alguien tiene más recomendaciones?
Actualización 1:
- Hay que tener en cuenta que la limitación del tamaño de las variables en GET viene determinado por el tamaño del querystring. En la mayoría de los servidores web se limita a 4K, es decir, 4000 letras.
- El paso de variables por POST debe emplearse en conexiones seguras, o HTTPS.
- Finalmente, es posible pasar carácteres ASCII en la URL siempre que se codifiquen adecuadamente.
Actualización 2:
Claudex nos recuerda que es mucho mejor basarnos en la especificación del HTTP/1.1 para decidirnos por un método u otro.
- 4639 lecturas

Para usar GET, además hay una limitación de tamaño que depende de los navegadores, está entorno a los 8K.
Para POST añadiría que es el método a utilziar en conexiones HTTPS,para forzar el encriptado de los datos.
Respecto a los caracteres que no son ASCII, nada impide codificarlos con urlencode para que puedan ser pasados por GET.
Perfecto, voy a cambiar la entrada, me parecen muy acertadas tus sugerencias.
La documentación del w3c establece que la principal razón para el uso de GET o POST es la posibilidad de cambio en el sitio.
GET debe usarse en situaciones de idempotencia, o sea, cuando la consulta no afecta los datos.
En cambio, POST se utiliza cuando la consulta afecta los datos en la página. De ahí que sea bastante lógico que los navegadores pidan confirmación para volver a una página (al hacer back) donde se realizó una consulta POST, ya que implica una acción sobre el sitio.
POST y GETMe apesta ponerme VM (viejo-de-mierda), pero a veces es necesario llamar al orden y la cordura!
Según la RFC-2616, la principal razón para usar los distintos métodos es el objetivo principal de la petición.
GET sirve recoger la información, cualquier...
Cuánta razón tienes :-)
No hay nada como seguir la documentación del w3c para aclarar las dudas... Gracias!
Jejeje. De nada. Para eso estamos. Soy un ratón de e-biblioteca con eso de los estándares :)
Hola, estoy trabajando con php y ajax, el problema que tengo que pasar una variable que contiene el simbolo + y no se como hacerlo ya que al obtenerla con get, ya que corta el string por ejmplo intento pasar c++ y solo obtengo c.
gracias por su ayuda
+ en un GET indica un espacio. Si mandas desde un js, ocupa escape()
gracias por tu respuesta.
Y en ese caso como puedo solucionar el problema de pasar el simbolo +
gracias.
Enviar un comentario nuevo