La diferencia entre GET y POST en HTML HTTP

El 99% de las personas entiende la diferencia entre GET y POST en HTTP (transferencia)



Transferencia desde: WebTechGarden WeChat cuenta pública

GET y POST son dos métodos básicos de solicitud HTTP, para decir la diferencia entre ellos, cualquiera que haya contactado con el desarrollo WEB puede decir uno o dos.

La diferencia más intuitiva es que GET incluye los parámetros en la URL y POST pasa los parámetros a través del cuerpo de la solicitud.

Es posible que haya escrito innumerables solicitudes GET y POST usted mismo, o haya visto las diferencias resumidas por muchos sitios web autorizados. Sabe exactamente cuándo usarlo.

Cuando se le hace esta pregunta durante una entrevista, su corazón está lleno de confianza y alegría.
 

072536_U5BK_2896879.png
 

Diste fácilmente una "respuesta estándar":
  • GET es inofensivo cuando el navegador retrocede, y POST volverá a enviar la solicitud.
  • La dirección URL generada por GET puede ser Bookmark, pero POST no.
  • El navegador almacena en caché las solicitudes GET, pero la POST no, a menos que se configure manualmente.
  • Las solicitudes GET solo pueden codificarse en URL, mientras que POST admite múltiples métodos de codificación.
  • Los parámetros de solicitud GET se retendrán por completo en el historial del navegador, mientras que los parámetros en POST no se retendrán.
  • Los parámetros transmitidos por la solicitud GET en la URL tienen una longitud limitada, pero no en la POST.
  • Para el tipo de datos del parámetro, GET solo acepta caracteres ASCII y POST no tiene restricciones.
  • GET es menos seguro que POST, porque los parámetros están expuestos directamente en la URL, por lo que no se pueden usar para pasar información confidencial.
  • El parámetro GET se pasa a través de la URL y la POST se coloca en el cuerpo de la Solicitud.



(La respuesta a este estándar es de w3schools)

"¡Desafortunadamente, esta no es la respuesta que queremos!"
 

072621_vmDd_2896879.png



Por favor dime la verdad. . .

Si te digo que GET y POST son esencialmente lo mismo, ¿lo crees?

¡Quitémonos los abrigos de GET y POST y nos vemos francamente!

¿Qué son GET y POST? Dos métodos para enviar solicitudes en el protocolo HTTP.

¿Qué es el HTTP?

HTTP es un protocolo basado en TCP / IP sobre cómo se comunican los datos en la World Wide Web.

La capa inferior de HTTP es TCP / IP, por lo que la capa inferior de GET y POST también es TCP / IP, es decir, ambos GET / POST son enlaces TCP.

Lo que GET y POST pueden hacer es lo mismo. Debe agregar el cuerpo de la solicitud a GET y llevar el parámetro url a POST, lo que es completamente factible técnicamente.

Entonces, ¿cuáles son las diferencias en las "respuestas estándar"?
 



En mi gran mundo de la World Wide Web, TCP es como un automóvil. Usamos TCP para transportar datos. Es muy confiable y nunca habrá un fenómeno de piezas faltantes o faltantes.

Pero si todos los autos que circulan por la carretera se ven exactamente iguales, entonces el mundo se ve como un desastre: los automóviles que envían artículos urgentes pueden ser bloqueados en la carretera por los automóviles llenos de mercancías en el frente, y todo el sistema de transporte se paralizará.

Para evitar esto, nacieron las reglas de tráfico HTTP.

HTTP establece varias categorías de servicios para el transporte de automóviles, incluidos GET, POST, PUT, DELETE, etc.

HTTP estipula que al realizar una solicitud GET, el automóvil debe etiquetarse con GET (establecer el método en GET), y es necesario colocar los datos transmitidos en el techo del automóvil (en la url) para una fácil grabación.

Si se trata de una solicitud POST, es necesario colocar una etiqueta POST en el automóvil y colocar los productos en el automóvil.

Por supuesto, también puede ocultar en secreto algunos productos en el automóvil durante GET, pero esto es muy vergonzoso; también puede poner algunos datos en el techo del automóvil durante la POST, lo que hace que las personas se sientan estúpidas.

HTTP es solo un código de conducta, y TCP es la base de cómo se implementan GET y POST.

Sin embargo, solo vemos solicitudes HTTP para el canal de transmisión de parámetros GET y POST (url o cuerpo de solicitud).

¿De dónde viene el límite del tamaño del parámetro en la "respuesta estándar"?
 



En mi mundo de la World Wide Web, hay otro papel importante: la compañía de transporte.

Los diferentes navegadores (que inician solicitudes http) y los servidores (que aceptan solicitudes http) son diferentes compañías de transporte.

Aunque en teoría, puede apilar carga ilimitada en el techo (agregar infinitamente parámetros en la URL).

Sin embargo, las compañías de transporte no son estúpidas. La carga y descarga también son muy costosas. Limitarán el volumen de transporte único para controlar el riesgo. Demasiados datos son una gran carga para los navegadores y servidores. La regla no escrita en la industria es que (la mayoría de los navegadores generalmente limitan la longitud de la URL a 2K bytes, mientras que (la mayoría) de los servidores manejan URL de hasta 64K de tamaño. El exceso no será procesado.

Si usa el servicio GET y oculta secretamente los datos en el cuerpo de la solicitud, diferentes servidores los procesan de manera diferente. Algunos servidores lo ayudarán a descargar y leer los datos, y algunos servidores los ignoran directamente. Garantizado para ser recibido.

Bueno, ahora sabes que GET y POST son esencialmente conexiones TCP, no hay diferencia.

Sin embargo, debido a las regulaciones HTTP y las restricciones del navegador / servidor, han mostrado algunas diferencias en el proceso de solicitud.

¿Crees que este artículo ha terminado?


Nuestro gran jefe todavía está esperando para jugar. . .

¿Qué tan misterioso es este jefe?

Cuando intente encontrar "la diferencia entre GET y POST" en Internet, esos resultados de búsqueda que verá nunca lo mencionarán.

Que es el . .

Hay otra diferencia importante entre GET y POST: en pocas palabras: GET genera un paquete TCP; POST genera dos paquetes TCP.

Refrán largo: para solicitudes GET, el navegador envía el encabezado http y los datos juntos, y el servidor responde con 200 (datos de retorno); para POST, el navegador envía el encabezado primero y el servidor responde con 100 (continuar), el navegador Enviar datos nuevamente, el servidor responde con 200 (datos devueltos).

Es decir, GET solo necesita un automóvil para entregar los productos, y POST tiene que ejecutarse dos veces. La primera vez, vaya al servidor para saludar: "Hola, la próxima vez enviaré un lote de productos. Abre la puerta para saludarme "y luego regresa a entregar los productos.

Debido a que POST requiere dos pasos y consume un poco más de tiempo, parece que GET es más efectivo que POST.

Por lo tanto, el equipo de Yahoo recomienda reemplazar POST con GET para optimizar el rendimiento del sitio web.

Pero esto es un hoyo! ! ! Ten cuidado al saltar.

Por qué
 

  • GET y POST tienen su propia semántica y no se pueden mezclar.
  • Según la investigación, en un buen entorno de red, la diferencia entre el tiempo para enviar un paquete y el tiempo para enviar dos paquetes puede ignorarse básicamente. Cuando el entorno de red es deficiente, el TCP de dos paquetes tiene una gran ventaja para verificar la integridad del paquete de datos.
  • No todos los navegadores envían paquetes dos veces en POST, por ejemplo, Firefox solo los envía una vez.



Ahora, cuando el entrevistador le pregunta nuevamente "la diferencia entre GET y POST", ¿es así su corazón?
 

Publicados 105 artículos originales · ganado elogios 4 · Vistas 5141

Supongo que te gusta

Origin blog.csdn.net/LBJ8888888/article/details/105354569
Recomendado
Clasificación