# Info Tools — Manual

> Vollständige Funktionsbeschreibung: jede Karte von HTTP Headers bis Modernizr, die Einzelwert-Endpunkte, der JSON-Export und Server- vs. Client-Daten.

Source: https://www.jpkc.com/db/tools/info/manual/

Zurück zur Übersicht: [Info Tools](https://www.jpkc.com/db/tools/info/) · Tool live öffnen: [www.jpkc.com/tools/info/](https://www.jpkc.com/tools/info/)

Dieses Manual beschreibt **Info Tools** Karte für Karte: was jeder Datenpunkt bedeutet, woher er stammt (Server oder Browser) und wie du das Ergebnis liest. Die Oberfläche des Tools ist auf Englisch — die Karten- und Feldnamen werden hier deshalb in ihrer englischen Original-Schreibweise genannt (mit deutscher Erläuterung), damit du dich im echten Interface zurechtfindest.

## Bedienung: nichts eingeben, nur lesen

Info Tools verlangt keine Eingabe. Du rufst die Seite auf, und sie füllt jede Karte automatisch: Die Server-Karten kommen schon fertig gerendert mit der Seite, die Client-Karten werden unmittelbar nach dem Laden per JavaScript ergänzt. Drei Karten (Battery, Storage, Permissions) zeigen kurz einen Lade-Hinweis, weil sie auf asynchrone Browser-APIs warten; **Performance Timing** misst sogar erst nach dem vollständigen Laden der Seite.

Neben vielen Werten erscheint ein kleiner **Kopier-Knopf**, mit dem du den einzelnen Wert in die Zwischenablage legst. Ganz oben rechts stehen außerdem **Copy as JSON** und **Export as JSON** für den gesamten Datensatz (siehe unten).

## Woher die Daten kommen

Die Trennung von Server- und Client-Daten ist das Kernkonzept des Tools:

- **Server-seitig** (PHP, aus `$_SERVER`) sind ausschließlich die Karten **HTTP Headers** und **Connection Info**. Diese Werte hat dein Browser bei der Anfrage mitgeschickt; jeder Server sieht sie.
- **Client-seitig** (JavaScript im Browser) sind alle übrigen Karten. Sie werden lokal ausgelesen und **nicht** an den Server übertragen.

## Server-Karten

### HTTP Headers

Zeigt die wichtigsten Request-Header, die dein Browser mit jeder Anfrage sendet:

- **HTTP_USER_AGENT** — die Browser-Kennung (Produkt, Version, Plattform-Hinweise).
- **HTTP_ACCEPT** — welche Inhaltstypen dein Browser annimmt.
- **HTTP_ACCEPT_LANGUAGE** — deine bevorzugten Sprachen (steuert u. a. die automatische Sprachwahl von Websites).
- **HTTP_ACCEPT_ENCODING** — unterstützte Kompressionsverfahren (z. B. `gzip`, `br`).
- **HTTP_DNT** — der **Do-Not-Track**-Wert; ist er nicht gesetzt, steht „Not set".

Jeder dieser Header-Namen ist verlinkt und führt zu einem Einzelwert-Endpunkt (siehe [Einzelwert-Endpunkte](#einzelwert-endpunkte)).

### Connection Info

Beschreibt die technische Seite deiner Verbindung:

- **REMOTE_ADDR** — deine IP-Adresse, wie der Server sie sieht.
- **Hostname** — der Reverse-DNS-Name zu dieser IP, ermittelt über PHPs `gethostbyaddr()`. Lässt sich kein Name auflösen, steht „Not resolvable".
- **REMOTE_PORT** — der Quell-Port deiner Verbindung.
- **SERVER_PROTOCOL** — das verwendete HTTP-Protokoll (z. B. `HTTP/2`).
- **Connection (HTTPS)** — „Secure (HTTPS)" oder „Not Secure (HTTP)".
- **X-Forwarded-For (Proxy)** — falls du über einen Proxy oder ein CDN kommst, steht hier die weitergereichte Original-IP; sonst „Not set (direct connection)".

## Client-Karten

### Screen & Display

Liest die Geometrie deines Bildschirms und Fensters aus:

- **Screen Resolution** (`screen.width/height`) und **Available Area** (`screen.availWidth/availHeight`, ohne Taskleiste o. Ä.).
- **Device Pixel Ratio** (`devicePixelRatio`) — Verhältnis physischer zu CSS-Pixeln, z. B. `2x` bei Retina-Displays.
- **Screen Colors** (`screen.colorDepth`) — Farbtiefe in Bit, zusätzlich als Anzahl Farben ausgerechnet.
- **Window Size** (`window.outerWidth/outerHeight`) und **Viewport Size** (`window.innerWidth/innerHeight`).
- **Orientation** (`screen.orientation`) — Hoch- oder Querformat, oder „Not supported".
- **Touch Support** (`maxTouchPoints`) — Anzahl gleichzeitiger Berührungspunkte, „No" wenn keiner.
- **Platform** (`navigator.platform`).

### Browser Settings

Drei Schalter-Werte, jeweils als farbiges Badge:

- **Cookies Enabled** (`navigator.cookieEnabled`).
- **PDF Viewer** (`navigator.pdfViewerEnabled`) — kann „Not supported" sein, wenn der Browser die Eigenschaft nicht kennt.
- **WebDriver** (`navigator.webdriver`) — `true` deutet auf Automatisierung hin; das Tool zeigt dann das Badge „Automated", sonst „Human".

### Navigator Properties

Durchläuft das `navigator`-Objekt und gruppiert die gefundenen Eigenschaften in **Browser**, **Platform**, **Language**, **Network**, **Features** und **Other**. Funktionen und komplexe Objekte werden übersprungen; Boolean-Werte erscheinen als grünes/rotes Badge, Listen und Strings als Code. Im Karten-Kopf steht die Gesamtzahl gefundener Eigenschaften als Badge.

### Browser Plugins

Listet `navigator.plugins`. Moderne Browser geben hier zum Schutz vor Fingerprinting meist **nichts** mehr preis — dann erscheint der Hinweis „No plugins detected." mit Erläuterung. Gibt es Einträge, zeigt jede Karte Name, Beschreibung, Dateiname und ggf. Version.

### MIME Types

Listet `navigator.mimeTypes`, gruppiert nach **Application**, **Audio**, **Image**, **Video**, **Text** und **Other**. Auch das ist in modernen Browsern häufig leer („No MIME types detected.").

### WebGL / GPU Info

Legt ein verstecktes Canvas an, holt einen WebGL-Kontext und liest darüber Grafik-Informationen:

- **GPU Renderer** und **GPU Vendor** — über die Erweiterung `WEBGL_debug_renderer_info` der tatsächliche Chip bzw. Hersteller, sofern der Browser das erlaubt.
- **WebGL Version** und **GLSL Version**.
- **Max Texture Size** und **Max Viewport** — Grenzwerte der GPU.

Unterstützt der Browser kein WebGL, erscheint stattdessen eine Warnung.

### Network Info

Nutzt die **Network Information API** (`navigator.connection`), die nicht jeder Browser hat. Verfügbar sein können:

- **Effective Type** — geschätzte Verbindungsklasse (`4g`, `3g`, …), als farbiges Badge.
- **Downlink Speed** (Mbit/s), **Round-Trip Time (RTT)** (ms), **Data Saver** (ein/aus) und ggf. **Connection Type**.
- **Online Status** — `navigator.onLine`, immer vorhanden.

Fehlt die API, weist die Karte darauf hin. Ändert sich die Verbindung, aktualisiert sich die Karte automatisch.

### Battery Status

Nutzt die **Battery Status API** (`navigator.getBattery()`). Wo verfügbar, zeigt sie **Battery Level** als Fortschrittsbalken, den **Charging Status** sowie — je nach Lade-/Entladezustand — die geschätzte **Time to Full** bzw. **Time Remaining**. Viele Desktop-Browser unterdrücken diese API aus Datenschutzgründen; dann erscheint ein entsprechender Hinweis.

### Storage Quota

Nutzt `navigator.storage.estimate()` und zeigt, wie viel lokalen Speicher die Website nutzen darf: **Storage Usage** als Balken (Prozent), **Used Space** und **Total Quota** in lesbaren Einheiten. Die Quote ist ein Browser-Schätzwert, kein fester Wert.

### Permissions Status

Fragt über die **Permissions API** den Zustand von zehn Berechtigungen ab: Geolocation, Notifications, Camera, Microphone, Clipboard Read, Clipboard Write, Persistent Storage, Push, MIDI und Screen Wake Lock. Jede erscheint als Badge in einem von vier Zuständen: **Granted** (grün), **Prompt** (gelb, wird beim Zugriff nachgefragt), **Denied** (rot) oder **Not Supported** (grau). Das bloße Abfragen löst **keine** Berechtigungs-Nachfrage aus.

### Performance Timing

Liest die (veraltete, aber breit unterstützte) `performance.timing`-API aus und zerlegt den Seitenaufbau in Phasen: **DNS Lookup**, **TCP Connection**, **SSL/TLS Handshake**, **Request Time**, **Response Time**, **DOM Processing**, **DOM Interactive** und **Page Load**. Die Messung erfolgt erst nach dem `load`-Ereignis, deshalb füllt sich diese Karte zuletzt. Werte beziehen sich auf **diesen** Seitenaufruf.

### HTML5 & CSS3 Capabilities (Modernizr 3.13.1)

Diese Karte lädt **Modernizr 3.13.1** und nutzt dessen Feature-Erkennung: Modernizr prüft clientseitig, ob dein Browser eine lange Liste von Web-Funktionen unterstützt (CSS-Features, HTML5-Elemente, DOM, ES5/ES6+, Audio, Video, Canvas, Formulare, Storage, SVG, WebRTC, Worker und mehr). Das Tool gruppiert die Ergebnisse in Kategorien und zeigt pro Kategorie sowie insgesamt, wie viele Features **unterstützt** (grün) und wie viele **nicht unterstützt** (rot) sind.

Damit Modernizrs Prüfungen funktionieren, lockert die Seite ihre Content-Security-Policy gezielt für diese Probes (u. a. `unsafe-eval` und `data:`-Worker) — das betrifft nur interne Feature-Checks, keine Nutzereingaben.

## Einzelwert-Endpunkte

Für Skripte und die Kommandozeile gibt es schlanke Endpunkte, die **nur einen** Wert als reinen Text (`text/plain`) zurückgeben — praktisch, um etwa per `curl` die eigene IP abzufragen. In der Oberfläche sind die zugehörigen Header- und Connection-Labels direkt auf diese Endpunkte verlinkt:

- `?ip` — deine IP-Adresse (`REMOTE_ADDR`)
- `?agent` bzw. `?ua` — der User-Agent
- `?accept` — der Accept-Header
- `?enc` — Accept-Encoding
- `?lang` — Accept-Language
- `?dnt` — Do Not Track
- `?port` — dein Quell-Port
- `?protocol` — das Server-Protokoll

Beispiel: `https://www.jpkc.com/tools/info/?ip` liefert nur deine IP zurück. Diese Endpunkte geben jeweils einen einzelnen Header- bzw. Verbindungswert aus — kein vollständiges, dokumentiertes Web-API, sondern bewusst minimale Helfer.

## JSON-Export

Oben rechts bündeln zwei Knöpfe den **kompletten** Datensatz:

- **Copy as JSON** — legt alle Werte als formatiertes JSON in die Zwischenablage.
- **Export as JSON** — lädt dieselben Daten als Datei `browser-info-<datum>.json` herunter.

Der Export umfasst **beides**: die server-seitigen Header und Verbindungsdaten **und** die client-seitig ausgelesenen Werte (Screen, Navigator, Plugins, MIME-Typen, WebGL, Network, Battery, Storage, Permissions, Performance und alle Modernizr-Features). Erzeugt wird die Datei lokal im Browser; sie wird nicht an den Server geschickt.

## Betriebsgrenzen und Datenschutz

- **Keine Speicherung:** Die Seite setzt `no-cache`-Header und legt nichts ab. Jeder Aufruf liest frisch aus.
- **Server sieht nur das Übliche:** IP und Request-Header bekommt der Server ohnehin mit jeder Anfrage — Info Tools zeigt sie dir nur zurück.
- **Client-Daten bleiben lokal:** Alle browserseitig ausgelesenen Werte verlassen deinen Browser nur, wenn **du** sie über Copy/Export herausnimmst.
- **API-Abhängigkeit:** Viele Karten hängen von optionalen Browser-APIs ab. Fehlt eine (oder ist sie aus Datenschutzgründen gesperrt), zeigt die jeweilige Karte einen sachlichen Hinweis statt eines Fehlers.

Für den Einstieg und die Zielgruppen siehe die [Übersichtsseite](https://www.jpkc.com/db/tools/info/). Konkrete Durchläufe stehen in den [Beispielen](https://www.jpkc.com/db/tools/info/examples/), Strategie und Stolperfallen in den [Tipps & Tricks](https://www.jpkc.com/db/tools/info/tips/). Ausprobieren kannst du alles direkt im [Tool](https://www.jpkc.com/tools/info/).

