Hablando / página 1 de 1

Hablando de CGI: La Interfaz Común de Pasarela

Antes de introducirnos de lleno a lo que es CGI, de qué se trata, debemos tener en claro dos conceptos:

  • Página estática: una página estática generalmente tendrá como formato HTML, y será aquella que al ser solicitada al servidor web, éste no hace más que entregarla tal y como está, sin modificarle nada. Hoy en día ya casi no se utilizan este tipo de páginas, pero en los comienzos de la W3 era lo único que existia.
  • Página dinámica: son armadas en el servidor web. Para ello se utilizan programas y lenguajes específicos, capaces de dar como resultado un HTML que luego se le entregará al cliente que la solicitó.

Con estos conceptos ya conocidos, veamos qué es CGI.

Como se dijo, cuando un servidor recibe una solicitud de una página dinámica, éste
le pasa la bola (con parámetros si así se requiere) a un programa externo. Dicho programa puede estar escrito en cualquier lenguaje (que el servidor soporte); normalmente son lenguajes interpretados (no es necesario compilaciones previas y son mucho más portables).

CGI define un estándar para transferir datos entre el navegador web y un programa externo. Volviendo al ejemplo de solicitud de una página web, CGI debe pasarle los datos al programa de algun modo; existen dos métodos: GET y POST, cada uno tiene sus características, pero aquí no hablaremos de ello. Una vez que pasó los parámetros, se procederá a la ejecución del script.

Como resultado de esta ejecución, se obtiene un objeto MIME, el cual define de que tipo de resultado estamos hablando (generalmente, documentos HTML). Éste objeto es capturado entonces por el servidor web (por la llamada salida estándar), y entregado al que realizó la solicitud.

Todas estas cosas suceden cada vez que uno de nosotros solicita una página web; nada complicado de entender.

Adentrándonos ahora un poco en el proceso de intercambio de información, veamos algunas de las variables de entornos que entran en juego:

  • REQUEST_METHOD: puede ser GET o POST.
  • QUERY_STRING: sólo tiene valores cuando se utiliza el método GET. Está compuesta por parejas como Variable1=Valor, concatenadas con &. Aquí, algunos caracteres (como acentos) son reemplazados por otros.
  • PATH_INFO: el nombre nos dice todo; es la dirección de la solicitud realizada por el cliente (URL).
  • SCRIPT_NAME: nombre del script invocado.
  • SERVER_PORT: puerto por donde se recibió la petición.
  • SERVER_PROTOCOL: nombre y versión del protocolo utilizado (ejemplo: HTTP/1.0 o 1.1).

Ya terminando, existen otras versiones por así llamarlas de CGI. Una de ellas es FastCGI, dónde se busca darle mayor velocidad a la ejecución de scripts creando un único proceso para múltiples peticiones y no uno por cada una como lo hace CGI. Otra, es SCGI, de la que no se mucho asique prefiero sólo nombrarla (si se quiere más información acerca de ésto, recomiendo leer aquí).

Hablando de las Entrevistas de Google

Sin dudas, Google es una de las empresas mas grandes a nivel mundial; y su crecimiento pareciera no tener límites, prometiendo ser única, prometiendo ser siempre Google.

Como es de imaginarse, tiene miles de empleados alrededor de todo el mundo; ingenieros, licenciados, y los profesionales más descatados de diversos rubros.

Existe un tema del que mucho se ha hablado: las entrevistas laborales de Google. Ya de entrada podemos considerar que es más complicado superar satisfactoriamente una entrevista en Google que una de cualquier otra empresa; de entre el mundo buscarán lo mejor, sin dudas.

Hace ya bastante tiempo se ha divulgado por la web algunas preguntas que le han hecho a cierta persona (nose si se conoce quién) en una entrevista de Google. Son realmente sorprendentes, más de una me dejo con la boca abierta y sin respuesta; y es justamente lo que ellos quieren. No les interesa una respuesta acertada -de hecho no creo que ni ellos tengan la respuesta para muchas de sus preguntas-, sino que apuntan a la creatividad e improvisación del entrevistado.

Algunas de las preguntas:

  1. ¿Cuántas pelotas de golf caben en un autobús escolar?
  2. Han encogido tu tamaño y estás atrapado en una batidora que va a comenzar a funcionar en 60 segundos. ¿Que harías para salir?
  3. ¿Cuánto deberías cobrar por limpiar todas las ventanas de Seattle?
  4. ¿Cuántas veces se solapan a lo largo del día las agujas de un reloj?
  5. Explica lo que es una Base de Datos a tu sobrino de 8 años (en tres frases).
  6. Si miras el reloj a las 3:15, ¿qué angulo forman las manecillas del reloj en ese momento?
  7. Estas en una fiesta con un amigo en la que hay 10 personas (incluidos tú y tu amigo). Tu amigo te hace una apuesta: por cada persona que encuentres que cumpla años el mismo día que tu, recibis un dólar; y por cada persona que no cumpla años el mismo dia tu, él recibe dos dólares. ¿Aceptarías la apuesta?

*NOTA: Este tipo de preguntas son las denominadas brain teasers, y cabe aclarar que no corresponden al 100% de la entrevista; son sólo para contrastar entre preguntas con carácter técnico.

Logo Google

A continuación mis respuestas:

  1. Las mismas que caben en un autobús no-escolar.
  2. Suponiendo que soy el único presente en la licuadora, me agarraría fuerte de una de sus cuchillas, me marearía un rato, y al terminar seguramente la persona que la activó me volcará fuera.
  3. Lo suficiente para vivir toda mi vida viajando por el mundo.
  4. Una; a las 00:00. En las demás, como por ejemplo 6:30, no se solapan porque el minutero (cuando el segundero llegue al 30) estaría entre 30 y 31.
  5. Allí podrías guardar todos los trucos de tus juegos, buscarlos rápidamente, y compartirlos con quien quieras.
  6. 90 grados (teniendo en cuenta el segundero).
  7. Supongo que no, pero en una fiesta ocurren cosas que nadie puede predecir.

Los invito a que respondan éstas preguntas, que sin duda pueden ser motivo de largas discusiones (si no lo creen miren aquí).

Muchas personas han hablado de ésto, les dejo links a algunas: bicosyes, tihomir, webintenta, miproyectoweb, gamedev, guardian.

Hablando de los “Contadores de Visitas”

Navegando por las inmensas olas de la interminable internet, me cruzo con un artículo publicado en Web Educa, un interesante sitio que nos brinda información muy útil y bien explicada. El artículo que les comentaba nos habla del por qué implementar auditores (contadores) de visitas en nuestras webs, y además deja su opinión de algunos servicios para auditar el tráfico de una web.

Continuar leyendo →