Foros del Web » Programando para Internet » PHP »

Duda existencial sobre PHP

Estas en el tema de Duda existencial sobre PHP en el foro de PHP en Foros del Web. Un usuario teclea la ruta de un archivo PHP. Entonces, pasa lo siguiente en este orden. 1. El servidor recibe la petición. 2. El servidor ...
  #1 (permalink)  
Antiguo 03/12/2002, 05:33
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Duda existencial sobre PHP

Un usuario teclea la ruta de un archivo PHP.

Entonces, pasa lo siguiente en este orden.

1. El servidor recibe la petición.
2. El servidor procesa el código PHP del archivo solicitado.
3. El servidor convierte el resultado del punto 2 en un archivo HTML que sirve al cliente
4. El cliente descarga el archivo HTML que le sirve el servidor
5. El usuario ve el archivo HTML en su navegador.


Teniendo esto claro, ¿qué pasaría si actualizo una página PHP cuando una petición anda por el paso 2?

Es decir, tenemos un usario que ha pedido una página, y justo cuando el servidor está creando el HTML (antes de que acabe) actualizo la web.
__________________
M a l d i t o F r i k i
  #2 (permalink)  
Antiguo 03/12/2002, 06:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Según tu encuesta sería "El cliente recibe la página nueva" .. pero el proceso en el servidor del script.php q se solicitó por primera vez .. algo de proceso (si esté fuera mucho tiempo) o incluso todo el proceso (lo mas problable) se habria ejecutado.

Si el proceso de tu script.php tiene que ver con gestionar algunos datos de un formulario para ingresarlos en una base de datos u otro sitio (nuevos, actualizaciones ..) veras los tipicos registros duplicados en esa Base de datos o sistema de almacenamiento .. tal como suele suceder en esos foros/libros de visitas y demas aplicaciones que muestran el "ok se registró sus datos" en el mismo script que hace la misión de gestionar esa base de datos o lo que corresponda.

Lo "típico" es que el proceso del scritp PHP sera "ultrarápido" pero la entrega del resultado (HTML+Javacript+todo lo que corresponda al cliente) sea lo que tardamos en descargarnos del servido (o mejor dicho .. el servidor es el que trada en enviarnos la página al cliente).


------
Como comentario/anectdota .. en PHP 4.3.0RCx y en adelante .. han incorporado esta nueva directiva:

max_input_time = 60 ;Maximum amount of time each script may spend parsing request data

Si mi ingles no me falla o mi interpretación .. lo que hace esta directiva es controlar justamente ese tiempo que tarda PHP en entregar su proceso al cliente.


Un saludo,
  #3 (permalink)  
Antiguo 03/12/2002, 06:37
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
En realidad, lo que me preocupa es un script que hace FTP. En este caso, está claro que lo que tarda es PHP en crear el HTML, no el HTML en descargarse.
__________________
M a l d i t o F r i k i
  #4 (permalink)  
Antiguo 03/12/2002, 07:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Técnicamente no se como funciona PHP junto con servidor HTTP ..

No se si peticiones de un mismo cliente se van poniendo a una cola de ejecución .... o se ejecutan paralelamente ..
<especulación sin fundamentos>
(pá mi que se añanden a la cola de ejecución las peticiones de un mismo cliente).
</especulación sin fundamentos>

Un saludo,
  #5 (permalink)  
Antiguo 03/12/2002, 15:44
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

De principio no se como funciona PHP. Pero creo que el paso 2 y el paso 3 son solo uno, ya que la salida de un PHP es codigo HTML. Y sobre la salida que recibira el cliente, depende de como lea PHP (el modulo o el cgi) el fichero fuente. Si lee el fichero PHP todo entero y lo almacena en memoria y luego lo "ejecuta" desde memoria, el cliente recibira la antigua. Si PHP lo lee a trozos, puede pasar cualquier cosa. Que PHP reconozca que el fichero fuente a cambiado y genere un error. Que el modificar el fichero fuente suponga la desaparicion del fichero antiguo y PHP se encuentre que esta intentando leer un fichero que no existe y de error. Que PHP no se de cuenta del cambio y prosiga con el proceso en la linea donde lo dejo, lo que puede provocar que ejecuter un script mezcla de las dos versiones y cuyo resultado es impredicible.

Son muchas posibilidades. Espero que encuentres la respuesta.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 03/12/2002, 15:49
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
En PHP Builder me han comentado que pueden suceder dos cosas:

1. La web se actualiza cuando PHP ya ha acabado de generar la página HTML. (paso 3) En este caso, el usuario recibe la nueva.

2. Mientras PHP está trabajando, se intenta actualizar el archivo. (paso 2)
En este caso, pueden pasar dos cosas:
2.1. El archivo está bloqueado y no me deja actualizar: El usuario recibe la vieja y yo recibo un error.
2.2 El archivo no está bloqueado y pued actualizar: El usuario recibe un error.
__________________
M a l d i t o F r i k i
  #7 (permalink)  
Antiguo 03/12/2002, 16:12
Avatar de lubetpic  
Fecha de Ingreso: enero-2002
Ubicación: San Jose
Mensajes: 679
Antigüedad: 15 años, 10 meses
Puntos: 0
segun mi corta experiencia, recibe una pagina totalmente despichada...por lo menos sucede asi en asp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:56.