Pregunta

Soy nuevo en programación web y tengo curiosidad por saber acerca de los métodos GET y POST para enviar datos de una página a otra.

Se dice que el método GET es más rápido que POST pero no sé por qué. ¿Una razón por la que pude encontrar es que GET puede tomar solo 255 caracteres? ¿Hay alguna otra razon? Por favor, que alguien me explique.

¿Fue útil?

Solución

No se trata mucho de velocidad. Hay muchos casos en los que POST es más aplicable. Por ejemplo, los motores de búsqueda indexarán las URL GET y los navegadores pueden marcarlas y hacer que aparezcan en el historial. Como resultado, si realiza acciones como modificar una base de datos basada en una solicitud GET, puede ser perjudicial ya que algunos bots también pueden atravesar la URL.

El otro caso puede ser un problema de seguridad. Si publica credenciales usando GET, aparecerá en el historial del navegador y en los archivos de registro del servidor.

Otros consejos

Otra cosa acerca de la publicación http es que puede haber 2 llamadas cuando se usa el encabezado http Expect: 100-Continue . El primer navegador envía los encabezados de publicación http y las respuestas del servidor con "HTTP 100 Continue". Cuando el navegador recibe esto, envía el cuerpo real.

http://omaralzabir.com/atlas_2__http_post_is_slower_and_in>

Creo que esta es la respuesta que el autor estaba buscando.

Mirando el protocolo http, POST o GET debería ser igualmente fácil y rápido de analizar. Yo diría que no hay diferencia de rendimiento.

Echa un vistazo a los encabezados HTTP sin procesar

http GET

GET /index.html?userid=joe&password=guessme HTTP/1.1
Host: www.mysite.com
User-Agent: Mozilla/4.0

POST http

POST /login.jsp HTTP/1.1
Host: www.mysite.com
User-Agent: Mozilla/4.0
Content-Length: 27
Content-Type: application/x-www-form-urlencoded

userid=joe&password=guessme

Desde mi punto de vista, el rendimiento no debe considerarse al comparar GET y POST.

Debería pensar en GET como "un lugar para ir" y POST como "hacer algo". Por ejemplo, un formulario de búsqueda debe enviarse usando GET porque la página de resultados de búsqueda es un "lugar". y el usuario querrá marcarlo o recuperarlo de su historial en una fecha posterior. Si envía el formulario mediante POST, el usuario solo puede volver a crear la página enviando el formulario nuevamente. Por otro lado, si realizara una acción como hacer clic en un botón Eliminar, no querrá enviarlo con GET, ya que la acción se repetiría cada vez que el usuario volviera a la URL.

Solo mis pocos centavos de 2016.

Estoy creando un sistema de mensajes simple. Al principio usé POST para recibir nuevas alertas. En jQuery tuve:

$.post('/a/alerts', 'stamp=' + STAMP, function(result)
{
});

Y en PHP usé $ _POST ['sello']. Incluso de localhost obtuve 90-100 ms por cada solicitud como esta. Simplemente cambié:

$.get('/a/alerts?stamp=' + STAMP, function(result)
{
});

y en PHP cambió a $ _GET ['sello']. Entonces, un poco menos de 1 minuto de cambios. Ahora cada solicitud tarda 30-40 ms .

Entonces GET puede ser el doble de rápido que POST . Por supuesto que no siempre, pero para pequeñas cantidades de datos obtengo los mismos resultados todo el tiempo.

GET es un poco más rápido porque los valores se envían en el encabezado a diferencia de POST los valores se envían en el cuerpo de la solicitud, en el formato que especifica el tipo de contenido.

Por lo general, el tipo de contenido es application / x-www-form-urlencoded, por lo que el cuerpo de la solicitud usa el mismo formato que la cadena de consulta:

parámetro = valor & amp; también = otro Cuando utiliza una carga de archivo en el formulario, utiliza la codificación multiparte / datos de formulario, que tiene un formato diferente. Es más complicado.

Estoy de acuerdo con otras respuestas, pero no se mencionó que las solicitudes GET se pueden almacenar en caché mientras que las solicitudes POST nunca se almacenan en caché. Creo que esta es la razón principal por la que algunas solicitudes GET se realizan más rápido. (En términos generales, esto significa que a veces no se envía ninguna solicitud. Por lo tanto, no es realmente la solicitud GET la que es más rápida, sino el caché de su navegador).

Métodos HTTP: GET vs. POST: http://www.w3schools.com/tags/ ref_httpmethods.asp

POST aumentará sus encabezados más, solo haciéndolo más grande, pero la diferencia debería ser realmente insignificante, así que no veo por qué esto debería ser una preocupación.

Solo tenga en cuenta que la forma correcta de hablar HTTP es usar GET solo para acciones y POST para datos. No tiene que hacerlo, pero tampoco desea tener un caso en el que los bots de Google puedan, por ejemplo, insertar, eliminar o manipular datos que solo estaban destinados a ser manejados por un humano simplemente porque está siguiendo los enlaces que encuentra .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top