En primer lugar, la explicación de Saifur Rahman Mohsin fue absolutamente brillante. Restauraré su respuesta con pocos ejemplos.
Recientemente estoy trabajando en un proyecto que necesita más comprensión simplemente diseñando un sitio web. Necesitaba entender cómo van mis datos al servidor. ¿Cómo se ve? Entonces, después de una búsqueda profunda, descubrí (aprendí) lo que necesitaba aprender. Así que voy a compartir mi conocimiento al respecto aquí.
En primer lugar, cuando envío datos al servidor, por ejemplo, tengo un formulario de inicio de sesión que tiene un campo de correo electrónico y contraseña y un envío. Cuando hace clic en el botón Enviar, el navegador creará una solicitud HTTP para usted según el método que especifique.
- ¿Qué es una transacción bancaria de servidor a servidor?
- ¿Cuál es el navegador web más avanzado?
- ¿Se puede contratar a un aspirante a desarrollador web si solo conoce HTML y CSS?
- ¿Cuál es el archivo de texto IO más rápido o MySQL?
- ¿Cómo integramos a la perfección los patrones de MVC front-end con las tecnologías del lado del servidor?
Para más claridad de las cosas, aquí hay un fragmento.
Aquí MÉTODO representa qué tipo de método HTTP está utilizando. Hay varios métodos HTTP disponibles como GET, POST, PUT, DELETE. Para la mayoría de los casos, solo se utilizarán los métodos GET y POST. Y GET es el método predeterminado, si no mencionó el método exclusivamente en la etiqueta del formulario.
Vayamos al punto, donde deberíamos ver cómo funciona POST. Asume el código anterior. Que estamos enviando datos del formulario al servidor utilizando el método POST. Básicamente, cuando hace clic en el botón Enviar, su navegador creará una Solicitud HTTP y una vez que se autentique desde el servidor, recibirá la Respuesta HTTP del servidor.
Técnicamente, HTTP Request and Response tiene dos cosas, encabezado HTTP y cuerpo HTTP si su método es POST. SI es GET, solo tendrá un encabezado HTTP.
Entonces, ¿ qué es el encabezado y el cuerpo HTTP? Lo que tiene
Te explicaré con un ejemplo. Estoy usando un software de análisis de paquetes de código abierto llamado Wireshark · Go Deep. Es una herramienta brillante para saber más sobre cómo se envían las solicitudes y cómo se reciben las respuestas. Puede usar las Herramientas para desarrolladores de Google para ver cosas básicas. Pero si quieres una mejor comprensión. Prueba ese software.
Ahora, creé una página ficticia con el código que le mostré arriba y la envié al servidor usando el método POST. Así es como se envió mi solicitud.
(tomado de Wireshark)
POST / api / 2 / users / login / HTTP / 1.1
Anfitrión: 192.168.52.166:6000
Longitud del contenido: 48
Control de caché: max-age = 0
Origen: http: // localhost
Usuario-Agente: Mozilla / 5.0 (X11; Linux x86_64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 54.0.2840.90 Safari / 537.36
Tipo de contenido: application / x-www-form-urlencoded
Aceptar: text / html, application / xhtml + xml, application / xml; q = 0.9, image / webp, * / *; q = 0.8
Referer: http: //localhost/app/login.html
Idioma de aceptación: en-US, en; q = 0.8, ca; q = 0.6
Aceptar-Codificación: gzip
correo electrónico = emjimadhu% 40email.com y contraseña = qwerty123
Esta es la solicitud HTTP que estoy enviando al servidor utilizando el método POST. La mayoría de los campos se explican por sí mismos. Pero te diré lo que tú qué.
Primero, ¿cuál es el encabezado y el cuerpo HTTP de lo anterior?
El encabezado HTTP es de la línea 1 a la 11, que es de POST / api / 2 / login / HTTP / 1.1 a Accept-Encoding: gzip. Los campos entre estos dos son Encabezado HTTP.
POST / api / 2 / users / login / HTTP / 1.1
La POST muestra que estoy enviando un formulario con el método POST Http. Si está enviando un formulario con GET, le mostrará GET en lugar de POST.
El siguiente / api / 2 / users / login / representa la url de “acción” que estoy haciendo. Aquí voy a enviar los datos del formulario a una página que se encuentra en / api / 2 / users / login / para verificar.
El HTTP / 1.1 se refiere al protocolo y la versión del mismo.
El resto de los demás campos son autoexplicativos.
HTTP Body es el mensaje que está enviando al servidor. Aquí estamos enviando valores de correo electrónico y contraseña al servidor.
correo electrónico = emjimadhu% 40email.com y contraseña = qwerty123
Cuando envíe datos, sus valores se codificarán en la estructura de URL. En el ejemplo anterior, no estamos enviando valores sin procesar al servidor. En cambio, lo estamos enviando en el formato URLEncoded.
Si es una solicitud GET en lugar de POST. Tendrá el mismo encabezado de solicitud HTTP. Pero no tendrá el cuerpo de solicitud HTTP. En cambio, todos sus valores están incrustados en su url.
Por ejemplo,
http://abc.com/login.html?email%3Demjimadhu%40email.com%26password%3Dqwerty123
Eso es todo. Espero que hayas conseguido lo que necesitabas.
Recursos:
- Wireshark · Profundiza.
- Referencia de codificación de URL HTML