H. Funcionamiento

Versión para imprimir.

1. Iniciamos al ejecutar código en el cliente

index.html

const respuesta = await consume(
 recibeJson("php/devuelve.php"))
const json =
 await respuesta.json()
alert(
 `Mensaje: ${json.mensaje}
Nombre: ${json.nombre}`)

2. Se invoca el servicio en el servidor

index.html

const respuesta = await consume(
 recibeJson("php/devuelve.php"))
const json =
 await respuesta.json()
alert(
 `Mensaje: ${json.mensaje}
Nombre: ${json.nombre}`)

Envía la solicitud (request) a la red para que
se ejecute el servicio asociado con la URL.

Request

GET /srv/devuelve.php HTTP/1.1 Accept: application/json, application/problem+json
Accept-Encoding: gzip, deflate
Accept-Language: es-ES,es;q=0.9,en;q=0.8
Connection: keep-alive
Cookie: __gsas=ID=329641bd2728ff51:T=1743534294:RT=1743534294:S=ALNI_MavjA3FPY-hDE5wNZO5LxFSOVeIIQ; __test=fe8a33dadb44b3adb2a0bc1ff8c44c98
Host: srvdevuelve.rf.gd
Referer: http://srvdevuelve.rf.gd/?i=1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36

srv/devuelve.php

devuelveJson([
 "nombre" => "pp",
 "mensaje" => "Hola."
]);

Despierta y recibe request.

3. El servicio procesa la request y genera la response

index.html

const respuesta = await consume(
 recibeJson("php/devuelve.php"))
const json =
 await respuesta.json()
alert(
 `Mensaje: ${json.mensaje}
Nombre: ${json.nombre}`)

Hace wait esperando response.

srv/devuelve.php

devuelveJson([
 "nombre" => "pp",
 "mensaje" => "Hola."
]);

Procesa la request y
genera response
(respuesta).

Response

HTTP/1.1 200 OK Server: openresty
Date: Fri, 02 May 2025 03:41:22 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: max-age=0
Expires: Fri, 02 May 2025 03:41:22 GMT
{"nombre":"pp","mensaje":"Hola."}

4. El servicio devuelve la response, que es recibida en el cliente

index.html

const respuesta = await consume(
 recibeJson("php/devuelve.php"))
const json =
 await respuesta.json()
alert(
 `Mensaje: ${json.mensaje}
Nombre: ${json.nombre}`)

Despierta y recibe response.

Response

HTTP/1.1 200 OK Server: openresty
Date: Fri, 02 May 2025 03:41:22 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: max-age=0
Expires: Fri, 02 May 2025 03:41:22 GMT
{"nombre":"pp","mensaje":"Hola."}

Memoria

respuesta
status
200
body
{"nombre":"pp","mensaje":"Hola."}
json
nombre
"pp"
mensaje
"Hola."

srv/devuelve.php

devuelveJson([
 "nombre" => "pp",
 "mensaje" => "Hola."
]);

Devuelve response y se duerme.

5. Muestra el objeto recibido en un alert

index.html

const respuesta = await consume(
 recibeJson("php/devuelve.php"))
const json =
 await respuesta.json()
alert(
 `Mensaje: ${json.mensaje}
Nombre: ${json.nombre}`)

Memoria

respuesta
status
200
body
{"nombre":"pp","mensaje":"Hola."}
json
nombre
"pp"
mensaje
"Hola."

Alert

Nombre: pp
Mensaje: Hola.

6. Al cerrar el alert, termina el evento

index.html

const respuesta = await consume(
 recibeJson("php/devuelve.php"))
const json =
 await respuesta.json()
alert(
 `Mensaje: ${json.mensaje}
Nombre: ${json.nombre}`)