Uživatelské nástroje

Nástroje pro tento web


environ

environ (WSGI)

V kontextu standardu WSGI je environ speciální slovník (dictionary) v jazyce Python, který obsahuje všechny informace o aktuálním HTTP požadavku a proměnné prostředí serveru.

Tento slovník předává webový server (např. Gunicorn nebo uWSGI) aplikaci při každém požadavku uživatele.

Klíčové skupiny informací

Slovník `environ` obsahuje tři hlavní typy dat:

1. CGI proměnné

Standardní proměnné definované specifikací CGI, které popisují požadavek:

  • REQUEST_METHOD: Metoda požadavku (např. `GET`, `POST`).
  • PATH_INFO: Cesta za doménou (např. `/produkty/detail/5`).
  • QUERY_STRING: Parametry v URL za otazníkem.
  • SERVER_NAME a SERVER_PORT: Informace o serveru.

2. WSGI specifické proměnné

Proměnné, které do slovníku přidává samo rozhraní WSGI:

  • wsgi.input: Proud (stream), ze kterého lze číst tělo požadavku (např. data z formuláře).
  • wsgi.url_scheme: Protokol (`http` nebo `https`).
  • wsgi.errors: Proud pro zápis chybových hlášení.

3. HTTP hlavičky

Všechny hlavičky, které poslal prohlížeč, jsou v `environ` dostupné s předponou `HTTP_`:

  • `HTTP_USER_AGENT` (prohlížeč uživatele)
  • `HTTP_COOKIE` (uložené cookies)
  • `HTTP_ACCEPT_LANGUAGE` (preferovaný jazyk)

Příklad obsahu (v kódu)

Pokud byste si nechali vypsat obsah `environ` při přístupu na web, vypadal by přibližně takto:

{
    'REQUEST_METHOD': 'GET',
    'PATH_INFO': '/index.html',
    'SERVER_NAME': 'localhost',
    'SERVER_PORT': '8000',
    'wsgi.input': <_io.BufferedReader name=11>,
    'HTTP_USER_AGENT': 'Mozilla/5.0...',
    'HTTP_HOST': 'mojedomena.cz',
    ...
}

Význam pro vývojáře

Ačkoliv moderní frameworky jako Django nebo Flask schovávají `environ` za elegantní objekty (jako je `request`), znalost tohoto slovníku je zásadní pro:

  • Psaní vlastního middleware.
  • Ladění problémů s proxy servery (např. Nginx).
  • Pochopení toho, jak se přenášejí informace o IP adrese uživatele.

Související pojmy: WSGI, Python, HTTP

environ.txt · Poslední úprava: autor: admin