¿Cuándo usas POST y cuándo usas GET?


De lo que puedo deducir, hay tres categorías:

  1. Nunca use GET y use POST
  2. Nunca use POST y use GET
  3. No importa cuál uses.

¿Estoy en lo cierto al asumir esos tres casos? En caso afirmativo, ¿cuáles son algunos ejemplos de cada caso?

Author: NightFury, 2008-09-05

28 answers

Use POST para acciones destructivas como la creación (soy consciente de la ironía), edición y eliminación, porque no puede golpear una acción POST en la barra de direcciones de su navegador. Use GET cuando sea seguro permitir que una persona llame a una acción. Así que una URL como:

http://myblog.org/admin/posts/delete/357

Debería llevarlo a una página de confirmación, en lugar de simplemente eliminar el elemento. Es mucho más fácil evitar accidentes de esta manera.

POST también es más seguro que GET, porque no está pegando información en URL. Y así usar GET como method para un formulario HTML que recopila una contraseña u otra información confidencial no es la mejor idea.

Una nota final: POST puede transmitir una mayor cantidad de información que GET. 'POST' no tiene restricciones de tamaño para los datos transmitidos, mientras que 'GET' está limitado a 2048 caracteres.

 320
Author: Brian Warshaw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-06 20:33:17

Resumen

  • Use GET para safe and idempotent solicitudes
  • Use POST para neither safe nor idempotent solicitudes

En detalles Hay un lugar adecuado para cada uno. Incluso si no sigues los principios RESTful , se puede ganar mucho aprendiendo sobre el DESCANSO y cómo funciona un enfoque orientado a los recursos.

Una aplicación RESTful use GETs para las operaciones que son ambas safe and idempotent.

Una operación safe es una operación lo que hace not change the data solicitado.

Una operación idempotent es aquella en la que el resultado será be the same sin importar cuántas veces lo solicite.

Es lógico pensar que, como GETs se utilizan para operaciones seguras también son automáticamente idempotentes. Por lo general, un GET se utiliza para recuperar un recurso (una pregunta y sus respuestas asociadas en el desbordamiento de pila, por ejemplo) o una colección de recursos.

Una aplicación RESTful usará PUTs para operaciones que son not safe but idempotent.

Sé que la pregunta era acerca de GET y POST, pero volveré a POST en un segundo.

Normalmente un PUT se usa para editar un recurso (editar una pregunta o una respuesta en el desbordamiento de la pila, por ejemplo).

A POST se utilizaría para cualquier operación que sea neither safe or idempotent.

Normalmente se usaría un POST para crear un nuevo recurso, por ejemplo, creando una NUEVA pregunta SO (aunque en algunos diseños se usaría un PUT para esto también).

Si ejecuta el POST dos veces, terminaría creando DOS preguntas nuevas.

También hay una operación de BORRADO, pero supongo que puedo dejarlo ahí:)

Discusión

En términos prácticos, los navegadores web modernos generalmente solo admiten GET y POST de manera confiable (puede realizar todas estas operaciones a través de llamadas javascript, pero en términos de ingresar datos en formularios y presionar enviar, generalmente tiene las dos opciones). En un Aplicación RESTful el POST a menudo será anulado para proporcionar las llamadas PUT y DELETE también.

Pero, incluso si no está siguiendo los principios RESTful, puede ser útil pensar en términos de usar GET para recuperar / ver información y POST para crear / editar información.

Nunca debe usar GET para una operación que altera datos. Si un motor de búsqueda rastrea un enlace a su operación malvada, o los marcadores del cliente podría significar un gran problema.

 180
Author: reefnet_alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-27 08:57:27

Use GET si no le importa que la solicitud se repita (es decir, no cambia de estado).

Use POST si la operación cambia el estado del sistema.

 70
Author: Douglas Leeder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-05 19:07:37

Versión corta

GET: Generalmente se usa para solicitudes de búsqueda enviadas, o cualquier solicitud en la que desee que el usuario pueda volver a abrir la página exacta.

Ventajas de GET:

  • Las URL se pueden marcar de forma segura.
  • Las páginas se pueden recargar de forma segura.

Desventajas de GET:

MENSAJE: Se utiliza para solicitudes de mayor seguridad donde los datos se pueden utilizar para alterar una base de datos, o una página que no desea que alguien marque.

Ventajas de POST:

  • Los pares Nombre-valor no se muestran en la url. (Seguridad += 1)
  • Se puede pasar un número ilimitado de pares nombre-valor vía POST. Referencia.

Desventajas de POST:

  • Página que utilizó Los datos POST no pueden ser marcadores. (Si así lo desea.)

Versión más larga

Directamente desde el Protocolo de Transferencia de Hipertexto HTTP HTTP/1.1:

9.3 GET

El método GET significa recuperar cualquier información (en forma de entidad) identificada por el URI de solicitud. Si el URI de solicitud se refiere a un proceso de producción de datos, son los datos producidos los que se devolverán como la entidad en la respuesta y no el texto fuente del proceso, a menos que ese texto sea la salida del proceso.

La semántica del método GET cambia a "GET condicional" si el mensaje de solicitud incluye un campo de encabezado If-Modified-Since, If-Unmodified-Since, If-Match, If-None-Match o If-Range. Un método GET condicional solicita que la entidad se transfiera solo bajo las circunstancias descritas por los campos de encabezado condicional. El método GET condicional está diseñado para reducir el uso innecesario de la red al permitir el almacenamiento en caché entidades que se actualizarán sin requerir múltiples solicitudes o transferir datos ya en poder del cliente.

La semántica del método GET cambia a un "GET parcial" si el mensaje de solicitud incluye un campo de encabezado de rango. Un GET parcial solicita que solo se transfiera una parte de la entidad, como se describe en la sección 14.35. El método GET parcial está destinado a reducir el uso innecesario de la red al permitir que las entidades recuperadas parcialmente se completen sin transferir datos ya en poder del cliente.

La respuesta a una solicitud GET se puede almacenar en caché si y solo si cumple con los requisitos para el almacenamiento en caché HTTP descritos en la sección 13.

Ver sección 15.1.3 para consideraciones de seguridad cuando se utiliza para formularios.

9.5 POST

El método POST se utiliza para solicitar que el servidor de origen acepte 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 permitir que un método uniforme cubra las siguientes funciones:

  • Anotación de los recursos existentes;

  • Publicar un mensaje en un tablón de anuncios, grupo de noticias, lista de correo, o grupo similar de artículos;

  • Proporcionar un bloque de datos, como el resultado de la presentación de un formulario, a un proceso de tratamiento de datos;

  • Extender una base de datos a través de una operación append.

La función real realizada por el PUESTO el método está determinado por el servidor y generalmente depende del URI de solicitud. La entidad destinataria está subordinado a ese URI de la misma manera que un archivo está subordinado a un directorio que lo contiene, un artículo de noticias está subordinado a un grupo de noticias al que se publica, o un registro está subordinado a un base.

La acción realizada por el método POST podría no resultar en un recurso que puede ser identificado por un URI. En este caso, 200 (OK) o 204 (Sin contenido) es el estado de respuesta apropiado, dependiendo de si la respuesta incluye o no una entidad que describe el resultado.

 63
Author: Cimplicity,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-28 05:12:41

Lo primero importante es el significado de GET versus POST:

  • GET debe ser utilizado... conseguir... alguna información de el servidor,
  • mientras que POST debería ser usado para enviar cierta información a el servidor.


Después de eso, un par de cosas que se pueden notar :

  • Usando GET, los usuarios pueden usar el botón "atrás" en su navegador, y pueden marcar páginas
  • Hay un límite en el tamaño de la parámetros que puede pasar como GET (2KB para algunas versiones de Internet Explorer, si no me equivoco); el límite es mucho más para POST, y generalmente depende de la configuración del servidor.


De todos modos, no creo que podríamos "vivir" sin GET: piense en cuántas URLs está utilizando con parámetros en la cadena de consulta, todos los días without sin GET, todas esas no funcionarían; -)

 27
Author: Pascal MARTIN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-12 13:01:50

Aparte de la diferencia de restricciones de longitud en muchos navegadores web, también hay una diferencia semántica. Se supone que los GETs son "seguros", ya que son operaciones de solo lectura que no cambian el estado del servidor. Las publicaciones normalmente cambiarán de estado y darán advertencias al volver a presentarlas. Los rastreadores web de los motores de búsqueda pueden hacer GET, pero nunca deben hacer publicaciones.

Use GET si desea leer datos sin cambiar el estado, y use POST si desea actualizar el estado en el servidor.

 11
Author: Mark Byers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-15 21:03:25

Mi regla general es usar Get cuando está haciendo solicitudes al servidor que no van a alterar el estado. Las publicaciones están reservadas para solicitudes al servidor que alteran el estado.

 8
Author: TonyLa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-05 19:08:25

Una diferencia práctica es que los navegadores y servidores web tienen un límite en el número de caracteres que pueden existir en una URL. Es diferente de una aplicación a otra, pero ciertamente es posible golpearlo si tienes textareas en tus formularios.

Otro gotcha con GETs - se indexan por los motores de búsqueda y otros sistemas automáticos. Google una vez tuvo un producto que pre-obtener enlaces en la página que estaba viendo, por lo que sería más rápido para cargar si se hace clic en esos enlaces. Se caused major havoc on sites that had links like delete.php?id=1 - people lost their entire sites.

 8
Author: ceejayoz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-15 17:48:30

Use GET cuando desee que la URL refleje el estado de la página. Esto es útil para ver páginas generadas dinámicamente, como las que se ven aquí. Una PUBLICACIÓN debe usarse en un formulario para enviar datos, como cuando hago clic en el botón "Publicar Tu respuesta". También produce una URL más limpia, ya que no genera una cadena de parámetros después de la ruta.

 7
Author: Kyle Cronin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-05 19:07:06

Debido a que las GETs son puramente URLs, el navegador web las puede almacenar en caché y se pueden usar mejor para cosas como imágenes generadas consistentemente. (Establecer un tiempo de caducidad)

Un ejemplo de la página gravatar: http://www.gravatar.com/avatar/4c3be63a4c2f539b013787725dfce802?d=monsterid

PUEDE obtener un rendimiento ligeramente mejor, algunos servidores web escriben el contenido del POST en un archivo temporal antes de invocar el controlador.

Otra cosa a considerar es el límite de tamaño. GETs están limitados por el tamaño de la URL, 1024 bytes por el estándar, aunque los navegadores pueden soportar más.

Transferir más datos que eso debería usar una PUBLICACIÓN para obtener una mejor compatibilidad con el navegador.

Incluso menos que ese límite es un problema, como escribió otro poster, cualquier cosa en la URL podría terminar en otras partes de la interfaz de usuario del brower, como el historial.

 5
Author: davenpcj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-06 08:46:15

No hay nada que no puedas hacer per se. El punto es que no se supone modificar el estado del servidor en un HTTP GET. Los proxies HTTP asumen que, dado que HTTP GET no modifica el estado, no hace ninguna diferencia si un usuario invoca HTTP GET una vez o 1000 veces. Usando esta información asumen que es seguro devolver una versión en caché del primer HTTP GET. Si rompe la especificación HTTP corre el riesgo de romper el cliente HTTP y los proxies de forma salvaje. No lo hagas:)

 4
Author: Gili,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-15 17:53:19

Esto atraviesa el concepto de REST y cómo la web estaba destinada a ser utilizada. Hay un excelente podcast en Software Engineering radio que da una charla en profundidad sobre el uso de Get y Post.

Get se utiliza para extraer datos del servidor, donde no debería ser necesaria una acción de actualización. La idea es que usted debe ser capaz de utilizar la misma solicitud GET una y otra vez y tener la misma información devuelta. La URL tiene la información get en la consulta cadena, porque estaba destinado a ser capaz de ser enviado fácilmente a otros sistemas y la gente como una dirección sobre dónde encontrar algo.

Post se supone que debe ser utilizado (al menos por la arquitectura REST en la que se basa la web) para enviar información al servidor/decirle al servidor que realice una acción. Ejemplos como: Actualizar estos datos, Crear este registro.

 4
Author: kemiller2002,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-29 22:28:34

1.3 Lista de comprobación rápida para Elegir HTTP GET o POST

Use GET if:

    The interaction is more like a question (i.e., it is a safe operation such as a query, read operation, or lookup).

Use POST si:

    The interaction is more like an order, or
    The interaction changes the state of the resource in a way that the user would perceive (e.g., a subscription to a service), or
    The user be held accountable for the results of the interaction.

Source .

 4
Author: Anagha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-17 20:22:19

Sin embargo, no veo ningún problema al usar get, lo uso para cosas simples donde tiene sentido mantener las cosas en la cadena de consulta.

Usarlo para actualizar el estado, como un GET de delete.php?id=5 para eliminar una página, es muy arriesgado. La gente se dio cuenta de que cuando el acelerador web de Google comenzó prefetching URLs en las páginas - que golpeó todos los enlaces 'eliminar' y eliminó los datos de las personas. Lo mismo puede pasar con las arañas de los motores de búsqueda.

 3
Author: ceejayoz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-05 19:13:00

POST puede mover grandes datos mientras que GET no puede.

Pero generalmente no se trata de un shortcomming de GET, más bien una convención si desea que su sitio web/webapp se comporte bien.

Echa un vistazo a http://www.w3.org/2001/tag/doc/whenToUseGet.html

 3
Author: cherouvim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-15 17:49:23

Desde RFC 2616:

9.3 GET
El método GET significa recuperar cualquier información (en la forma de una entidad) se identifica por el Solicitud-URI. Si la Solicitud-URI se refiere para un proceso de producción de datos, es el datos que deberán ser devueltos como la entidad en la respuesta y no el texto fuente del proceso, a menos que ese texto pasa a ser la salida de proceso.


9.5 POST
El método POST se utiliza para solicitar que el servidor de origen aceptar la entidad incluida en el solicitud como nuevo subordinado de la recurso identificado por la Solicitud-URI en la Línea de Solicitud. POST está diseñado para permitir que un método uniforme cubra la funciones siguientes:

  • Anotación de los recursos existentes;
  • Publicar un mensaje en un tablón de anuncios, grupo de noticias, lista de correo o grupo similar de artículos;
  • Proporcionar un bloque de datos, como el resultado de la presentación de un formulario, a un proceso de tratamiento de datos;
  • Extender una base de datos a través de una operación append.

La función real realizada por el El método POST está determinado por el servidor y generalmente depende de la Solicitud-URI. La entidad destinataria es subordinado a ese URI en el mismo forma en que un archivo está subordinado a un directorio que lo contiene, una noticia el artículo está subordinado a un grupo de noticias a la que está destinado, o registro subordinado a una base de datos.

La acción realizada por el POST el método puede no resultar en un recurso eso puede ser identificado por un URI. En este caso, ya sea 200 (OK) o 204 (No Contenido) es la respuesta apropiada estado, dependiendo de si la respuesta incluye una entidad que describe el resultado.

 3
Author: Dmytro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-16 08:47:18

Utilizo POST cuando no quiero que la gente vea la QueryString o cuando la QueryString se hace grande. Además, POST es necesario para la carga de archivos.

Sin embargo, no veo ningún problema al usar GET, lo uso para cosas simples donde tiene sentido mantener las cosas en la cadena de consultas.

Usar GET permitirá enlazar a una página en particular también donde POST no funcionaría.

 2
Author: John Boker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-25 07:39:53

GET y POST básicamente permiten que la información sea enviada de vuelta al servidor web desde un navegador (u otro cliente HTTP para el caso).

Imagine que tiene un formulario en una página HTML y al hacer clic en el botón "enviar" envía los datos del formulario al servidor, como pares "nombre=valor".

Elegir GET como el "método" agregará todos los datos a la URL y se mostrará en la barra de URL de su navegador. La cantidad de información que puede enviar de vuelta usando un GET está restringida como Las URL solo pueden tener 1024 caracteres.

Los desafíos de la integración en la Nube Descargar Ahora Un POST por otro lado (típicamente) enviará la información a través de un socket al servidor web y no aparecerá en la barra de URL. Puede enviar mucha más información al servidor de esta manera, y tampoco está restringida a datos textuales. Es posible enviar archivos e incluso datos binarios como objetos Java serializados!

 2
Author: amit pandya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-21 05:32:24

La intención original era que GET se usaba para recuperar datos y POST era cualquier cosa. La regla general que uso es que si estoy enviando algo al servidor, uso POST. Si solo estoy llamando a una URL para recuperar datos, uso GET.

 1
Author: Chris Miller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-05 19:08:07

Lea el artículo sobre HTTP en la Wikipedia. Explicará qué es el protocolo y qué hace:

GET

Solicita una representación del recurso especificado. Tenga en cuenta que GET no debe usarse para operaciones que causen efectos secundarios, como usarlo para realizar acciones en aplicaciones web. Una de las razones de esto es que GET puede ser utilizado arbitrariamente por robots o rastreadores, que no deberían tener en cuenta los efectos secundarios que una solicitud debería causar.

Y

POST Envía datos para ser procesados (por ejemplo, desde un formulario HTML) al recurso identificado. Los datos se incluyen en el cuerpo de la solicitud. Esto puede resultar en la creación de un nuevo recurso o las actualizaciones de los recursos existentes o ambos.

El W3C tiene un documento llamado URI, Direccionabilidad, y el uso de HTTP GET y POST que explica cuándo usar qué. Citando

1.3 Lista de comprobación rápida para Elegir HTTP GET o POST

  • Use GET if:
    • La interacción es más como una pregunta (es decir, es un operación segura, como una consulta, operación de lectura o búsqueda).

Y

  • Use POST si:
    • La interacción es más como un orden, o
    • La interacción cambia el estado del recurso de una manera que el usuario percibiría (por ejemplo, una suscripción a un servicio), o o El el usuario será responsable de los resultados de la interacción.

Sin embargo, antes de la decisión final de usar HTTP GET o POST, por favor, también considere consideraciones para datos sensibles y consideraciones prácticas.

Un ejemplo práctico sería cada vez que envías un formulario HTML. Especifique posto get para la acción del formulario. PHP rellenará $_GET y $_POST en consecuencia.

 1
Author: Gordon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-15 17:54:49

En PHP, POST el límite de datos es usualmente establecido por su php.ini. GET está limitado por la configuración del servidor/navegador, creo, generalmente alrededor de 255 bytes.

 1
Author: jellyfishtree,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-17 20:38:45

Versión simple de POST GET PUT DELETE use GET - cuando desee obtener cualquier recurso, como una lista de datos basada en cualquier Id o Nombre use POST-cuando desee enviar cualquier dato al servidor. tenga en cuenta que POST es una operación de peso pesado porque para la actualización debemos usar PUT en lugar de POST internamente POST creará un nuevo recurso use PUT-cuando

 1
Author: Rajesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-27 17:28:31

De w3schools.com:

¿Qué es HTTP?

El Protocolo de Transferencia de Hipertexto (HTTP) está diseñado para habilitar comunicaciones entre clientes y servidores.

HTTP funciona como un protocolo de solicitud-respuesta entre un cliente y un servidor.

Un navegador web puede ser el cliente, y una aplicación en un equipo que hosts un sitio web puede ser el servidor.

Ejemplo: Un cliente (navegador) envía una solicitud HTTP al servidor; luego el el servidor devuelve una respuesta al cliente. Respuesta contiene información de estado sobre la solicitud y también puede contener contenido solicitado.

Dos métodos de solicitud HTTP: GET y POST

Dos métodos comúnmente utilizados para una solicitud-respuesta entre un cliente y los servidores son: GET y POST.

GET-Requests data from a specified resource POST-Submits data to ser procesado a un recurso especificado

Aquí distinguimos el mayor diferencias:

introduzca la descripción de la imagen aquí

 1
Author: Madhusudhan Reddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-15 00:14:21

Bueno, una cosa importante es que cualquier cosa que envíes a través de GET se expondrá a través de la URL. En segundo lugar, como dice Ceejayoz, hay un límite de caracteres para una URL.

 0
Author: prodigitalson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-15 17:50:18

Otra diferencia es que POST generalmente requiere dos operaciones HTTP, mientras que GET solo requiere una.

Editar: Debería aclarar--para patrones de programación comunes. En general, responder a una PUBLICACIÓN con una página web HTML recta es un diseño cuestionable por una variedad de razones, una de las cuales es la molesta "debe volver a enviar este formulario, ¿desea hacerlo?"al presionar el botón atrás.

 0
Author: Plynx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-15 18:14:55

Como respondieron otros, hay un límite en el tamaño de la url con get, y los archivos se pueden enviar solo con post.

Me gustaría añadir que uno puede añadir cosas a una base de datos con un get y realizar acciones con un post. Cuando un script recibe un post o un get, puede hacer lo que el autor quiera que haga. Creo que la falta de comprensión proviene de la redacción que eligió el libro o de cómo lo leyó.

Un autor de script debería usar posts para cambiar la base de datos y usar obtener solo para la recuperación de información.

Los lenguajes de scripting proporcionaron muchos medios para acceder a la solicitud. Por ejemplo, PHP permite el uso de $_REQUEST para recuperar un post o un get. Uno debe evitar esto en favor de lo más específico $_GET o $_POST.

En la programación web, hay mucho más espacio para la interpretación. Hay lo que uno deberíay lo que uno puede hacer, pero cuál es mejor a menudo es objeto de debate. Afortunadamente, en este caso, no hay ambigüedad. Usted debeusar posts para cambiar datos, y usted debe usar get para recuperar información.

 0
Author: Elizabeth Buckwalter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-15 18:22:59

Gorgapor, mod_rewrite todavía utiliza a menudo GET. Solo permite traducir una URL más amigable en una URL con una cadena de consulta GET.

 0
Author: Brian Warshaw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-17 21:03:08

Los datos HTTP Post no tienen un límite especificado en la cantidad de datos, donde como diferentes navegadores tienen diferentes límites para GET. El RFC 2068 establece:

Los servidores deben tener cuidado con dependiendo de longitudes de URI superiores a 255 bytes, porque algunos clientes más antiguos o es posible que las implementaciones de proxy no sean adecuadas soporta estas longitudes

Específicamente, debe tener las construcciones HTTP correctas para lo que se usan. HTTP GET no debe tener efectos secundarios y puede ser se actualiza y almacena de forma segura mediante proxies HTTP, etc.

Los HTTP POST se utilizan cuando desea enviar datos contra un recurso url.

Un ejemplo típico para usar HTTP GET es en una búsqueda, es decir, ¿Buscar?Query = my + query Un ejemplo típico para usar una publicación HTTP es enviar comentarios a un formulario en línea.

 -1
Author: mythz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-02-15 17:52:03