Menú
Gratis
Registro
hogar  /  Instalación y configuración/ ¿Qué es una solicitud de obtención al servidor? Generación de solicitudes HTTP

¿Qué es una solicitud de obtención al servidor? Generación de solicitudes HTTP

Sí, todo el mundo ha aprendido algo en algún momento. Lo único que distingue a las personas en este sentido es que para algunos, las enseñanzas se dan fácilmente, mientras que otros no pueden comprender la esencia del tema durante muchos meses. Hoy hablaremos sobre las solicitudes POST y GET en HTML\PHP.

Las propias solicitudes POST y GET (en lo sucesivo, solicitudes) se han arraigado durante mucho tiempo en todos los recursos de Internet. Si de repente algún día aparece una alternativa a estas tecnologías, entonces probablemente no será pronto, y probablemente no sea necesario. Porque nuestras solicitudes cumplen bastante la tarea de intercambiar datos entre páginas de Internet.

Veamos primero una solicitud GET. Vamos a crear un archivo index.php con el estándar código HTML, y también coloque un formulario en él, que sea un formulario de pedido de producto.

Echemos un vistazo a la etiqueta aquí. forma. tiene dos parametros acción Y método. El primero es responsable de la dirección de la página a la que transferiremos nuestros datos, el segundo es del método por el cual se transferirán estos datos. Dentro de esta etiqueta, describimos el conjunto de nuestros datos que queremos transferir. Se deben asignar nombres a los datos (parámetro nombre). También se requiere tipo de entrada entregar, que es el botón que envía datos cuando se hace clic.

Guardemos nuestro archivo y abrámoslo en un navegador.
La ruta de nuestra página en el navegador es ".../index.php". En la página misma, vemos dos campos de entrada y un botón. Completemos algo en nuestros campos y haga clic en el botón "Pedir". Nuestra página ha sido actualizada. Miremos su dirección: ".../index.php?orderName=Test&count=12". (Escribí en el primer campo la palabra 'Prueba' en el segundo '12'). Como podemos ver, la dirección de la página ha cambiado un poco. El hecho es que la transmisión de parámetros GET por una solicitud se lleva a cabo asignándolos a la cadena de dirección de la página. Los parámetros están separados de la dirección principal por el carácter '?', y los diferentes parámetros por el carácter '&'. La estructura de parámetros es la siguiente: nombre_parámetro=valor. El nombre del parámetro coincidirá con el valor del atributo de nombre en el campo de entrada.
Editemos un poco el código de la página:

> >

Ahora haga clic en el botón "Pedir" de nuevo. Como podemos ver, la página ha sido actualizada, pero nuestros campos permanecieron llenos. Esto se debe al hecho de que proporcionamos un valor predeterminado para nuestros campos. Además, estos valores son el parámetro GET recibido. Como podemos ver en el código PHP, los parámetros GET son una matriz con un índice de cadena igual al nombre del parámetro. Si ahora jugamos con la dirección del sitio y cambiamos los valores de los parámetros en él y presionamos el botón "Entrar", volveremos a ver una imagen con la actualización de la página y el llenado de nuestro formulario.

Obviamente, enviar datos secretos o de servicio en una solicitud GET es incorrecto (y no es seguro). Es mejor usarlo para transferir, por ejemplo, el id de la noticia que se debe tomar de la base de datos o el nombre de la página que se debe mostrar.

La solicitud POST es otra cuestión. Funciona de manera similar, pero no almacena los parámetros en la barra de direcciones. Cambiemos nuestra forma:

$_POST["nombre del pedido"]?> > $_POST["cuenta"]?> >

Como puede ver, ¡no ha cambiado mucho, sin embargo! Abramos nuestra página, complete algo en los campos y presione el botón "Ordenar". Todo funcionó de la misma manera, sin embargo (sin embargo), como vemos en la cadena de consulta, la dirección “…/index.php” hace alarde sin ningún tipo de parámetros. Por lo tanto, "escondimos" nuestros datos de miradas indiscretas. Por supuesto, el concepto estaba oculto, más bien condicionado, ya que estos datos aún pueden ser interceptados, pero esa es otra historia. Agreguemos los parámetros ".../index.php?orderName=Trololo&count=100" a nuestra dirección y presionemos "Enter". Como podemos ver, la página se cargó, pero incluso a pesar del paso de parámetros, los campos resultaron estar vacíos. Esto sugiere que, a pesar de la gran similitud, estos tipos de solicitudes no se cruzan entre sí de ninguna manera y, si es necesario, vale la pena escribir un controlador para cada tipo de solicitud por separado.

Creo que es suficiente. Los conceptos básicos de la pregunta, creo, se describen con una cabeza.

Y un poco más… No olvide comprobar los parámetros pasados. Si está seguro de que el parámetro debe ser un número, corte todos los intentos de pasar un valor no numérico, etc.

Los métodos GET y POST en HTTP y HTTPS son los dos métodos más populares usados ​​para transferir datos de un cliente a un servidor usando protocolo HTTP(Protocolo de Transferencia de Hipertexto). Tanto GET como POST se pueden usar para enviar una solicitud y recibir una respuesta, pero existe una diferencia significativa entre los dos.

La diferencia entre las solicitudes GET y POST en HTTP o HTTPS es una pregunta popular en todas las entrevistas de programación web. Dado que HTML no depende de la tecnología de servidor web como Java, ASP o PHP y HTTP es el protocolo principal en el espacio de Internet, la importancia de comprender los métodos GET y POST no puede ignorarse claramente. En este artículo, veremos qué es el método HTTP GET, qué es el método HTTP POST, cuándo usar una u otra solicitud y cuál es la diferencia entre ellos. Analicemos cada concepto por separado.

¿Qué es HTML?

HTML es el lenguaje utilizado para crear páginas web. Hipertexto se refiere a los hipervínculos que puede contener una página HTML. Un lenguaje de marcado se refiere a la forma en que se utilizan las etiquetas para definir el diseño de una página y los elementos de una página.
A continuación es ejemplo HTML, que se utiliza para definir una página web básica con un título y un párrafo de texto:



<Голова>
<Название>TechTerms.com

<Тело>

Este es un ejemplo de un párrafo en HTML.

La primera línea especifica el tipo de contenido contenido en el documento., Y , que están todos incluidos en el ejemplo anterior. El título de la página, los metadatos y los enlaces a los archivos con anclas se colocan entre el contenido real de la página y entre las etiquetas. .

La web ha pasado por muchos cambios en las últimas décadas, pero HTML siempre ha sido el lenguaje principal utilizado para desarrollar páginas web. Curiosamente, aunque los sitios web se han vuelto más avanzados e interactivos, HTML se ha vuelto más simple. Si compara el código fuente de una página HTML5 con una página similar escrita en HTML 4.01 o XHTML 1.0, la página HTML5 tendrá menos código. Esto se debe a que el HTML moderno se basa en hojas de estilo en cascada o JavaScript para dar formato a casi todos los elementos dentro de una página.

Muchos sitios web dinámicos generan páginas web sobre la marcha utilizando un lenguaje de secuencias de comandos del lado del servidor, como PHP o ASP. Sin embargo, incluso las páginas dinámicas deben formatearse con HTML. Por lo tanto, los lenguajes de secuencias de comandos suelen generar código HTML que se envía a un navegador web.

El Protocolo de transferencia de hipertexto HTTP está diseñado para la comunicación entre clientes y servidores y funciona como un protocolo de solicitud y respuesta.

El navegador web puede ser el cliente y la aplicación en la computadora que aloja el sitio web puede ser el servidor.

El cliente (navegador) envía una solicitud HTTP al servidor, el servidor devuelve una respuesta que contiene información sobre el estado de la solicitud y también puede contener el contenido solicitado.

Dos métodos de solicitud GET y POST

Dos métodos comúnmente utilizados para la solicitud-respuesta entre el cliente y el servidor:

    GET: solicita datos del recurso especificado;

    POST: envía datos para ser procesados ​​al recurso especificado.

La traducción de GET y POST significa literalmente recibir y posprocesar.

Más información sobre HTTP

HTTP es el protocolo utilizado para transferir datos a través de Internet. Es parte del paquete de Protocolo de Internet y define los comandos y servicios utilizados para transferir datos de páginas web.

HTTP utiliza el modelo servidor-cliente. El cliente puede ser un ordenador de casa, un portátil o dispositivo móvil. El servidor HTTP suele ser un servidor web con software servidor web como Apache o IIS. Cuando un usuario accede a un sitio web, el navegador envía una solicitud al servidor web correspondiente y responde con un código de estado HTTP. Si la URL es válida y se otorga la conexión, el servidor enviará la página web y los archivos asociados al navegador.

Los códigos de estado HTTP comunes incluyen:

    200 - solicitud exitosa (la página web existe);

    301: se mueve permanentemente (a menudo redirige a una nueva URL)

    401 - solicitud no autorizada (se requiere autorización);

    500 — Error interno servidor (a menudo llamado mala configuración servidor).

POST y GET en HTTP

HTTP define OBTENER comandos y POST, que se utilizan para procesar envíos de formularios en sitios web. El comando CONNECT se utiliza para facilitar una conexión segura cifrada mediante SSL. Las conexiones HTTP encriptadas ocurren a través de HTTPS, una extensión de HTTP diseñada para transferencias de datos seguras.

Se puede acceder a las direcciones URL que comienzan con "http://" a través de protocolos estándar de transferencia de hipertexto y usan de forma predeterminada el puerto 80. Se accede a las direcciones URL que comienzan con "https://" a través de un Conexión HTTPS y a menudo usa el puerto 443.

CORREO

POST es una serie comprobaciones del sistema realizadas por computadoras y otros dispositivos electrónicos cuando están encendidos. Los resultados de la prueba se pueden mostrar en la pantalla, emitir a través de LED parpadeantes o simplemente registrarlos internamente. EN sistemas informáticos la operación POST se realiza al principio de la secuencia de arranque. Si pasan todas las pruebas, el resto del proceso de inicio continuará automáticamente.

Los sistemas operativos de dispositivos Mac y Windows ejecutan POST cada vez que la computadora arranca o se reinicia. escanear cheques Hardware y garantiza que el procesador, la RAM y los dispositivos de almacenamiento funcionen correctamente. Si ocurre un error durante la POST, el proceso de inicio puede pausarse o detenerse por completo, y puede aparecer un mensaje en el monitor.En una PC, los errores de la POST suelen mostrarse en la pantalla de información del BIOS. Se pueden generar como códigos de cifrado como "08" o como un mensaje del sistema como "Error de memoria del sistema en el desplazamiento". En una Mac, los errores POST a menudo se indican mediante gráficos simples, como un ícono de carpeta rota, que indica que no se encontró ningún dispositivo de arranque.

manifestaciones físicas

En algunos casos, es posible que la pantalla de la computadora ni siquiera se encienda antes de los errores POST. Si esto sucede, los códigos de error pueden mostrarse a través de LED parpadeantes o señales de sonido. Por ejemplo, iMac de manzana reproducirá tres tonos consecutivos, hará una pausa de cinco segundos y luego repetirá los tonos cuando se detecte una memoria RAM defectuosa durante el inicio. La mayoría de las PC también emiten un pitido cuando encuentran errores POST, aunque cada fabricante usa sus propios códigos.

POST es un término bastante técnico que solo utilizan tecnicos en computacion sobre una base regular. Sin embargo, es un buen acrónimo ya que ayuda a comprender mejor los mensajes de error que pueden aparecer en las computadoras u otros dispositivos electrónicos. Si la computadora no se inicia debido a un error POST, puede usar otro dispositivo para buscar el significado y la causa del error en el sitio web del fabricante. Luego puede tomar la acción adecuada, como quitar el módulo de memoria o reinstalar la tarjeta gráfica y luego reiniciar el hardware.

CONSEGUIR

POST es también un método de paso de variables formularios HTML de una página web a otra sin mostrarlas en Barra de dirección. Un método alternativo es GET, que agrega valores a la URL. Las solicitudes HTTP POST proporcionan datos adicionales del cliente (navegador) al servidor en el cuerpo del mensaje. Por el contrario, las solicitudes GET incluyen todos los datos necesarios en la URL. Los formularios en HTML pueden usar cualquier método especificando method=POST o method=GET (predeterminado) en el elemento

. El método especificado determina cómo se envían los datos del formulario al servidor. Cuando se utiliza el método GET, todos los datos del formulario se codifican como URL como parámetros de cadena de consulta. Con POST, los datos del formulario aparecen en el cuerpo del mensaje de la solicitud HTTP.

Diferencias en la presentación del formulario.

El método de solicitud POST solicita al servidor web que acepte y almacene los datos incluidos en el cuerpo del mensaje de solicitud. A menudo se usa al cargar un archivo o enviar un formulario web completo.

El método de solicitud HTTP GET recupera información del servidor. Como parte de una solicitud GET, se pueden pasar algunos datos en la cadena de consulta de URL, especificando términos de búsqueda, intervalos de fechas u otra información que define la solicitud.

Como parte de una solicitud POST, se puede enviar una cantidad arbitraria de datos de cualquier tipo al servidor en el cuerpo del mensaje de solicitud. El campo de encabezado en una solicitud POST generalmente especifica el tipo de medio de Internet del cuerpo del mensaje.

La principal diferencia entre las solicitudes GET y POST es que corresponden a diferentes solicitudes HTTP según se define en las especificaciones HTTP. El proceso de envío para ambos métodos comienza de la misma manera: el navegador crea el conjunto de datos del formulario y luego lo codifica de la manera especificada por el atributo enctype. Para MÉTODO=" Atributo POST enctype puede ser multipart/form-data o application/x-www-form-urlencoded, mientras que METHOD=" GET " solo se activa a través de application/x-www-form-urlencoded. Estos datos de formulario establecidos se pasan luego al servidor.

Para enviar un formulario con METHOD = "GET", el navegador construye una URL tomando el valor del atributo de acción y agregándole un conjunto de datos de formulario codificados usando el tipo de contenido application/x-www-form-urlencoded). Luego, el navegador trata esta URL como si se estuviera refiriendo a un enlace (o como si el usuario hubiera ingresado manualmente la URL). El navegador divide la URL en partes y reconoce el host, luego envía una solicitud GET a ese host con el resto de la URL como argumento. Es importante tener en cuenta que este proceso significa que los datos del formulario están limitados a códigos ASCII. Se debe tener especial cuidado para codificar y decodificar otros tipos de caracteres al pasarlos a una URL ASCII.

Un envío de formulario con METHOD="POST" hace que se envíe una solicitud POST utilizando el valor del atributo de acción y se genera una publicación de acuerdo con el tipo de contenido especificado por el atributo enctype.

PHP

PHP está incrustado en HTML. Esto significa que el código PHP se puede insertar en una página HTML. El código PHP es leído o analizado por el servidor que aloja la página. La salida de las funciones GET y POST de PHP en una página generalmente se devuelve como código HTML que el navegador puede leer. Debido a que el código PHP se convierte a HTML antes de cargar la página, los usuarios no pueden ver el código PHP en la página. Lo hace páginas PHP suficiente para acceder a bases de datos y otra información protegida.

Gran parte de la sintaxis de PHP se toma prestada de otros lenguajes como C, Java y Perl. Sin embargo, PHP tiene una serie de características únicas y características especiales. El propósito de este lenguaje es permitir a los desarrolladores web escribir rápida y fácilmente páginas generadas dinámicamente.

WordPress

WordPress es sistema libre gestión de contenido utilizada para crear y mantener sitios web. Su facilidad de uso y sus características únicas de blogs lo han ayudado a convertirse en la herramienta de blogs más popular en la web.

La interfaz de WordPress permite que cualquier persona sin experiencia en desarrollo web cree y publique un sitio web. Las herramientas de creación de blogs integradas proporcionan una forma sencilla de realizar un seguimiento de las publicaciones individuales, los visitantes y los comentarios de los usuarios.

Aunque hay miles Plantillas de WordPress y complementos, el sistema POST GET en WordPress todavía tiene sus limitaciones. Dado que este es un servicio basado en plantillas, el usuario debe comenzar con un sitio web preconstruido en lugar de crear páginas desde cero. Además, no hay forma de incrustar scripts o mantener una base de datos con el mismo nivel de control que ofrece un sitio web personalizado.

La herramienta POST_GET_ID() le permite usar scripts para manipular el elemento, ya que tiene una identificación única, y al enviarlo como un formulario a través de estos métodos, la lista desplegable se enviará con identificador único, lo que permite que la secuencia de comandos se dé cuenta de qué publicación se está ejecutando. Alternativamente, se puede enviar una variable oculta, que permitirá que el script vea qué publicación pertenece a la vista.

Esta publicación es una respuesta a una pregunta formulada en uno de mis artículos.

En este artículo quiero contarte qué son los métodos GET/POST/PUT/DELETE y otros métodos HTTP, para qué se inventaron y cómo usarlos de acuerdo con REST.

HTTP

Entonces, ¿cuál es uno de los principales protocolos de Internet? Enviaré pedantes a RFC2616, y contaré el resto de forma humana :)

Este protocolo describe la interacción entre dos computadoras (cliente y servidor), construida sobre la base de mensajes llamados solicitud (Request) y respuesta (Response). Cada mensaje consta de tres partes: línea de inicio, encabezados y cuerpo. En este caso, solo se requiere la línea de salida.

Las líneas de inicio de la solicitud y la respuesta tienen un formato diferente: solo nos interesa la línea de inicio de la solicitud, que se ve así:

URI DEL MÉTODO http/ VERSIÓN ,

Donde METHOD es solo el método de solicitud HTTP, URI es el identificador de recursos, VERSION es la versión del protocolo (en este momento versión actual 1.1).

Los encabezados son un conjunto de pares de nombre y valor separados por dos puntos. En los encabezados se transmite información diversa del servicio: la codificación del mensaje, el nombre y la versión del navegador, la dirección de donde vino el cliente (Referente), etc.

El cuerpo del mensaje es en realidad los datos transmitidos. En la respuesta, los datos transmitidos, por regla general, son la página html solicitada por el navegador, y en la solicitud, por ejemplo, en el cuerpo del mensaje, se transmiten los contenidos de los archivos cargados en el servidor. Pero, como regla, no hay ningún cuerpo de mensaje en la solicitud.

Ejemplo de interacción HTTP

Considere un ejemplo.

Pedido:
GET /index.php HTTP/1.1 Host: ejemplo.com Agente de usuario: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5 Aceptar: text/html Conexión: cerrar
La primera línea es la cadena de consulta, el resto son encabezados; falta el cuerpo del mensaje

Respuesta:
HTTP/1.0 200 OK Servidor: nginx/0.6.31 Idioma del contenido: ru Tipo de contenido: text/html; charset=utf-8 Contenido-Longitud: 1234 Conexión: cerrar... LA PÁGINA HTML MISMA...

Recursos y Métodos

Volvamos a la cadena de consulta inicial y recordemos que contiene un parámetro como un URI. Esto significa Identificador uniforme de recursos, un identificador uniforme de recursos. Un recurso es, por regla general, un archivo en el servidor (un URI de ejemplo en este caso es "/styles.css"), pero en general, cualquier objeto abstracto también puede ser un recurso ("/blogs/webdev/" - apunta al "Desarrollo web", y no a un archivo específico).

El tipo de solicitud HTTP (también llamado método HTTP) le dice al servidor qué acción queremos realizar en el recurso. Inicialmente (a principios de los 90) se suponía que el cliente solo podía querer una cosa de un recurso: recibirlo, pero ahora puede crear publicaciones, editar un perfil, eliminar mensajes y mucho más utilizando el protocolo HTTP. Y es difícil combinar estas acciones con el término "recibir".

Para diferenciar acciones con recursos a nivel de métodos HTTP se inventaron las siguientes opciones:

  • GET - obtener un recurso
  • POST - creación de recursos
  • PUT - actualización de recursos
  • DELETE - eliminar un recurso
Preste atención al hecho de que la especificación HTTP no obliga al servidor a comprender todos los métodos (que en realidad son mucho más de 4); solo se requiere GET y tampoco le indica al servidor qué debe hacer cuando recibe una solicitud con un método particular. Esto significa que el servidor, en respuesta a una solicitud DELETE /index.php HTTP/1.1 no está obligado a elimine la página index.php en el servidor, lo mismo que para una solicitud GET /index.php HTTP/1.1 no está obligado a devolverte la página index.php, él puede eliminarla, por ejemplo :)

DESCANSO entra en juego

REST (Transferencia de estado representacional): este término fue introducido en 2000 por Roy Fielding, uno de los desarrolladores del protocolo HTTP, como el nombre de un grupo de principios para crear aplicaciones web. En general, REST cubre un área más amplia que HTTP: se puede usar en otras redes con otros protocolos. REST describe los principios de interacción entre el cliente y el servidor, basados ​​en los conceptos de "recurso" y "verbo" (puedes entenderlos como sujeto y predicado). En el caso de HTTP, el recurso se define por su URI y el verbo es el método HTTP.

REST propone dejar de usar el mismo URI para diferentes recursos (es decir, las direcciones de dos artículos diferentes como /index.php?article_id=10 y /index.php?article_id=20; esta no es una forma REST) ​​y usar diferentes Métodos HTTP para diferentes acciones. Es decir, una aplicación web escrita con el enfoque REST eliminará un recurso cuando se acceda a él con el método HTTP DELETE (por supuesto, esto no significa que sea necesario dar la oportunidad de eliminar todo y a todos, pero cualquier la solicitud de eliminación de la aplicación debe usar el método DELETE HTTP).

REST brinda a los programadores la capacidad de escribir aplicaciones web estandarizadas y un poco más bonitas que nunca. Usando REST, el URI para agregar un nuevo usuario no será /user.php?action=create (método GET/POST), sino simplemente /user.php (método estrictamente POST).

Finalmente, combinando los existentes Especificación HTTP y el enfoque REST, los diversos métodos HTTP finalmente tienen sentido. GET: devuelve un recurso, POST: crea uno nuevo, PUT: actualiza uno existente, DELETE: lo elimina.

¿Problemas?

Sí, hay un pequeño problema con la aplicación de REST en la práctica. Este problema se llama HTML.

Las solicitudes PUT / DELETE se pueden enviar a través de XMLHttpRequest, poniéndose en contacto manualmente con el servidor (digamos, a través de curl o incluso a través de telnet), pero no puede crear un formulario HTML que envíe una solicitud PUT / DELETE completa.

El hecho es que la especificación HTML no le permite crear formularios que envíen datos que no sean a través de GET o POST. Por lo tanto, para el funcionamiento normal con otros métodos, es necesario imitarlos artificialmente. Por ejemplo, en Rack (el mecanismo sobre la base del cual Ruby interactúa con un servidor web; Rails, Merb y otros marcos de Ruby se crean usando Rack), puede agregar un campo oculto llamado "_método" al formulario y especificar el nombre del método como el valor (por ejemplo, "PUT"): en este caso, se enviará una solicitud POST, pero Rack podrá fingir que recibió un PUT, no un POST.

El primer método para ejecución de php La solicitud POST es para usar file_get_contents. El segundo método usará fread en combinación con un par de otras funciones. Ambas opciones usan la función stream_context_create para completar los campos de encabezado de solicitud requeridos.

Explicación del código

La variable $sPD contiene los datos a enviar. Debe estar en formato de cadena de solicitud HTTP, por lo que algunos Símbolos especiales debe estar codificado.

Tanto en la función file_get_contents como en la función fread, tenemos dos nuevos parámetros. El primero es use_include_path. Dado que estamos realizando una solicitud HTTP, será falso en ambos ejemplos. Cuando se usa true para leer un recurso local, la función buscará un archivo en include_path .

El segundo parámetro, context , se completa con el valor de retorno de stream_context_create , que toma el valor de la matriz $aHTTP.

Usando file_get_contents para hacer solicitudes POST

En PHP, para enviar una solicitud POST usando file_get_contents, debe usar stream_context_create para completar manualmente los campos del encabezado y especificar qué "contenedor" se usará; en este caso, HTTP:

$sURL = "http://brugbart.com/Examples/http-post.php"; // POST URL $sPD = "name=Jacob&bench=150"; // Datos POST $aHTTP = array("http" => // Envoltorio que se usará array("method" => "POST", // Método de solicitud // Los encabezados de solicitud se establecen debajo de "header" => "Content- tipo: application/x-www-form-urlencoded", "content" => $sPD)); $contexto = stream_context_create($aHTTP); $contenido = file_get_contents($sURL, false, $contexto); echo $contenido;

Usando fread para hacer solicitudes POST

Puede utilizar la función fread para realizar solicitudes POST. El siguiente ejemplo usa stream_context_create para componer los encabezados de solicitud HTTP requeridos:

$sURL = "http://brugbart.com/Examples/http-post.php"; // POST URL $sPD = "name=Jacob&bench=150"; // Datos POST $aHTTP = array("http" => // Envoltorio que se utilizará array("method" => "POST", // Método de solicitud // Los encabezados de solicitud se establecen debajo de "header" => "Content- tipo: application/x-www-form-urlencoded", "content" => $sPD)); $contexto = stream_context_create($aHTTP); $manejador = fopen($sURL, "r", false, $contexto); $contenido = ""; while (!feof($manejador)) ( $contenido .= fread($manejador, 8192); ) fclose($manejador); echo $contenido;

Hacer solicitudes GET con PHP

Ahora centraremos nuestra atención en el uso de fread y file_get_contents para descargar contenido de Internet a través de HTTP y HTTPS. Para usar los métodos descritos en este artículo, la opción fopen wrappers debe estar habilitada. Para hacer esto, en el archivo php.ini, debe configurar el parámetro allow_url_fopen en On .

Las solicitudes PHP POST y GET se utilizan para iniciar sesión en sitios web, recuperar contenido de páginas web o buscar nuevas versiones de aplicaciones. Cubriremos cómo hacer solicitudes HTTP simples.

Uso de fread para descargar o recibir archivos a través de Internet

Recuerde que la lectura de una página web se limita a la parte accesible del paquete. Entonces necesitas usar la función stream_get_contents ( similar file_get_contents) o mientras bucle para leer el contenido en fragmentos más pequeños hasta llegar al final del archivo:

En este caso, al procesar una solicitud PHP POST, el último argumento de la función fread es igual al tamaño del fragmento. Por lo general, no debe ser superior a 8192 ( 8*1024 ).

HTTP es un protocolo de transporte de hipertexto, uno de los protocolos de la pila TCP/IP. El protocolo fue originalmente diseñado para enviar y recibir páginas HTML, pero ahora se usa perfectamente para distribuciones sistemas de información. Es uno de los protocolos más utilizados en la World Wide Web.

Foto 1

Basado en un esquema de solicitud/respuesta. Cuando un cliente envía una solicitud a un servidor, puede hacerlo con 3 tipos de solicitudes: GET, PUT y POST.

OBTENER solicitud HTTP

CONSEGUIR es una solicitud de información del cliente. El navegador web del cliente envía un mensaje GET para recuperar páginas de él. La solicitud consta de dos partes:

  • cadena de consulta
  • titulares

Una solicitud GET no tiene un cuerpo de datos, pero esto no significa que no pueda enviar ningún dato al servidor. Usando parámetros especiales en la cadena de URL, puede enviar datos al servidor. Firmar ? después del dominio en la URL significa que los parámetros se pasarán más. La Figura 2 muestra exactamente qué información envía el navegador al servidor.

Dibujo - 2

Solicitud POST y PUT HTTP

Estos dos métodos se implementan para enviar información al servidor web. Por ejemplo, utilizando formularios web especiales, completándolos, los enviamos al servidor mediante el método POST. PUT, por otro lado, sube recursos o datos a un servidor web (imagen, video).

HTTP no es un protocolo seguro y los mensajes POST se pueden interceptar y leer porque no están cifrados. Para la seguridad de la transferencia de datos mediante el método POST, se utiliza el protocolo HTTPS. Cifra los datos y puede realizar la autenticación. También implementa requisitos adicionales para pasar información entre las capas de transporte y aplicación.

Las principales diferencias entre los métodos POST y GET se muestran en la Tabla 1.

La Figura 3 muestra las reglas básicas a seguir al elegir el método GET o POST para implementar el trabajo en su servidor.