Foros del Web » Programando para Internet » PHP »

Aclarar conceptos!!!

Estas en el tema de Aclarar conceptos!!! en el foro de PHP en Foros del Web. Hola, estoy buscando una figura donde se refleje el cliente y un sevidor Apache y la interacción del cliente con ese servidor. Tambien la ubicación ...
  #1 (permalink)  
Antiguo 08/09/2003, 16:03
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
Interaccion del cliente con el Servidor Apache, PHP, Mysql, etc

Hola, estoy buscando una figura donde se refleje el cliente y un sevidor Apache y la interacción del cliente con ese servidor. Tambien la ubicación del PHP, Mysql, Html,etc. pero no encuentro nada decente.

¿Alguién sabe donde encontrar una web donde se refleje y explique esto con detalle?

Un saludo y gracias.
  #2 (permalink)  
Antiguo 08/09/2003, 16:38
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

La iteracion del cliente (navegador) con Apache es por medio del protocolo HTTP, que como protocolos inferiores TCP/IP. El Apache "escucha" los mensajes en un puerto TCP (normalmente el 80). EL protocolo HTTP se basa en mensajes, compuesto por cabeceras y cuerpos. En w3c.org tienes documentos sobre el protocolo HTTP (cabeceras, ...).

MySQL es un servidor, que tambien "escucha" peticiones. PHP ni idea, supongo que dependera si esta como CGI o como modulo de Apache.

Y documentacion, quizas en las listas de desarrollo de cada uno.

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 08/09/2003, 18:18
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
Hola, perfecto pero ademas de eso que me comentas necesito un gráfico en que aparezcan los diferentes flujos de información(representados por flechas) entre el cliente y el servidor, ademas de que se reflejen los pasos. Por ejemplo: la idea sería tener un gráfico en el que aparezca todos los pasos, como 1)Solicitud del cliente al servidor, 2)Interpretación del código PHP, etc

Es decir, donde se puedan ver las diferentes fases que se producen desde que alguien solicita una página hasta que se le muestra y puede interaccionar con ella de una forma visual.

Como interacciona PHP,Apache, Mysql,etc, para generar esa página que al final se le muestra a alguién.

Un saludo y gracias por tu interés.
  #4 (permalink)  
Antiguo 08/09/2003, 20:21
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
Pregunta Aclarar conceptos!!!

Hola, me gustaría que alguién me aclarara algunas ideas que tengo.

En un principio tenemos un servidor Apache, luego dos módulos de este servidor que son PHP y Mysql.

¿PHP es un servidor en sí mismo? Mysql sé que si lo es.

Luego PHP y Mysql estarían dentro de Apache o están fuera de él y funcionan en colaboración con él??.

Sé que cuando un usuario solicita una página web, lo hace a un Servidor que puede ser apache, éste servidor si detecta que la página que se solicita es .php, llama a PHP pasándole el nombre y camino completo de la página como parámetro.
Después,PHP carga la página y la procesa.

La salida producida por PHP es capturada por el servidor web.

El servidor web envía esta salida a su navegador.

Pero ¿Quien llama al servidor MYSql?¿Quién interacciona con él?¿Y de que manera lo hace? Supongo que es PHP el que interacciona con él, pero de que manera?? Las consultas que lleva la página .php, de que manera las interpreta Mysql, ¿Cómo le pasa esas consultas PHP a Mysql?

Si alguién tiene algo que decir, le agradecería que lo comentara.

Un saludo y gracias.
  #5 (permalink)  
Antiguo 08/09/2003, 23:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
(uní ambos temas .. pues guardan relación) ..

PHP no es un "servidor" .. es un interprete que .. montado en ambiente "web" con un servidor HTTP es llamado por este (Apache en tu caso) cada vez que se solicita una página .php (o la extensión que tenga asignada al interprete PHP) ...

A su vez .. PHP puede ser ejecutado bajo ese servidor HTTP como módulo: esto es; sólo se "levanta" al interprete PHP una sóla vez al inicio del servidor HTTP (Apache) y se queda "residente" en memoria en espera de peticiones del servidor HTTP (pero todo esto en el lado del servidor y entre ellos ). En modo CGI, PHP es "levantado" a cada petición de una página .php y es "matado" el proceso al terminar el script ...

A nivel de rendimiento (no es el caso pero ya puestos) .. El tiempo de proceso de "levantar" a PHP cada vez que se pide una pagina (en modo CGI) es ahorrado a costa de más recursos del servidor (memoria pricipalmente) en modo Módulo de Apache.


Mysql como ya sabes es un "servidor" própio .. funciona de forma independiente y es accesado por quien sea .. en tu caso por PHP pues es un lenguaje de programación del lado del servidor que tiene dichas funcionalidades .. (bajo la misma filosofia .. una apliación tuya en PHP puede acceder a Msyql, PostgreSQL, SQL Server .. etc y todo en un mismo script (flujo de programa) ..)

Con el servidor Mysql (o el que sea) se "habla" con el .. en algún lenguaje .. en este caso es en "SQL" Leguaje estrucurado de consultas (o algo así dice la teoría). PHP para ello te pone a tu disposición variadas funciones entre ellas las más básicas para "conectarte" a tu servidor Msyql (en el HOST, que corra y puerto y usando el USER y PASS que tengas habilitado) .. y la función de "ejecutar" una consulta SQL (o tal vez mejor dicho "mandarle una sentencia SQL al servidor en este caso Mysql) .. Me refiero a funciones como mysql_connect() para conectarte y mysql_query() para que ejecutes tu SQL ..

El resultado de una ejecución de una consulta es recogido por PHP (integramente) y gestionado por este .. para eso .. Msyql le devuelve un "ID" de conexexion (link que llaman también) y un "Puntero" si se ejecutó alguna consulta para que puedas aplicar otras funciones en PHP para obtener tu "record set" generado por tu consulta en un array, o un objeto .. por ejemplo y tratarlo como variables simples en tu código PHP.

Bajo la misma filosofia .. PHP "habla" con otros servidores .. ejemplos son: IMAP (para sevidores de e-mail) , Sockets (para conexiones directas a un Servidor cualquiera siempre y cuando tu implementes el protocolo a usar o uses el que use el servidor al que conectas ..), SOAP ("web services") .. etc.

Tambien PHP interactua con el sistema de archivos del servidor (para leer y escribir) .. el cual lo accede PHP directamente "bajo" el usuario que corra Apache (si está como módulo será el mismo y con los mismos permisos que Apache, si está como CGI .. con el que se le otorge ..)

En general.. así funcionan la mayoria de lenguajes de "scripting" como es PHP .. aunque PHP ya "pasó" esa barrera y puede ser ejecutado como un interprete cualquiera sin necesidad de un servidor HTTP caso de correr PHP en modo "CLI" (command Line Interface al puro estilo Pyton, Perl .. etc) o con interface GTK con PHP-GTK ..

Sobre los diagramas (graficos) de flujo de datos entre cliente-servidor .. y teoría en general, puedes ver algo en:

http://www.openmymind.net/php/guide/tut/concepts.php

(jeje .. curioso el nombre del dominio xD)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 09/09/2003, 12:53
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 14 años, 5 meses
Puntos: 0
Gracias por la aclaración.

Un saludo.
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 12:34.