El intercambio de información en Internet se lleva a cabo en un modelo cliente-servidor. El cliente envía una solicitud (qué archivos necesita) y el servidor envía una respuesta (qué archivos necesita). Para una estrecha cooperación (comprensión completa) entre el cliente y el servidor, el cliente envía información adicional sobre sí mismo: la versión y el nombre del sistema operativo, la configuración del navegador (incluido su nombre y versión), etc.
Esta información es requerida por el servidor para saber qué página web proporcionar al cliente. Hay varias variantes de página web diferentes para diferentes configuraciones de navegador. Sin embargo, las páginas web generalmente no dependen del navegador, por lo que es muy posible ocultar esta información del servidor web.

Datos que el navegador envía al servidor web
- Nombre y versión del sistema operativo
- Nombre y versión del navegador
- Configuración del navegador (resolución de pantalla, profundidad de color, compatibilidad con java/javascript)
- Dirección IP del cliente
- Otra información
La parte más importante de dicha información y no requerida por el servidor web es la información sobre la dirección IP. De la IP, se puede obtener la siguiente información:
- País de origen de la PI
- La ciudad donde se originó la PI
- Nombre y correo electrónico del proveedor de servicios
- La dirección física del titular de la IP
Variables de entorno
El servidor puede acceder a la información enviada por el cliente al servidor como variables de entorno. Cada unidad de información es el valor de alguna variable. Si no se pasa alguna unidad de información, la variable correspondiente estará vacía (no se especifica el valor).
Las siguientes son algunas variables de entorno:
REMOTE_ADDR? La dirección IP del cliente
HTTP_VIA ? Si no está vacío, se utiliza un proxy. El valor es la dirección (o direcciones) del servidor proxy, esta variable es agregada por el propio servidor proxy si la usa.
HTTP_X_FORWARDED_FOR ? Si no está vacío, se utiliza un proxy. El valor es la dirección IP original del cliente (su IP), esta variable también es agregada por el servidor proxy si la usa.
HTTP_ACCEPT_LANGUAGE ? Qué idioma se utiliza en el navegador (qué idioma debe mostrarse en la página)
HTTP_USER_AGENT ? También se llama «agente de usuario». Para todos los navegadores, esto es Mozilla. Además, el nombre y la versión del navegador (por ejemplo, MSIE 5.5) y el sistema operativo (por ejemplo, Windows 10) también se mencionan aquí.
HTTP_HOST ? es el nombre del servidor Web
Además de las variables mencionadas anteriormente, hay muchas otras variables ambientales como DOCUMENT_ROOT, HTTP_ACCEPT_ENCODING, HTTP_CACHE_CONTROL, HTTP_CONNECTION, SERVER_ADDR, SERVER_SOFTWARE, SERVER_PROTOCOL y otras. El número de variables depende de la configuración del servidor y del cliente.
Los siguientes son ejemplos de valores de variable:
REMOTE_ADDR = 194.5.1.1
HTTP_ACCEPT_LANGUAGE = ru
HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 5.0; Windows XP)
HTTP_HOST = www.webserver.ru
HTTP_VIA = 194.5.1.1 (Calamar/2.4.ESTABLE7)
HTTP_X_FORWARDED_FOR = 194.5.5.5