der webproxy squid · squid debugging-hilfen praxis der webproxy squid ein Überblick und ein wenig...

41
HTTP Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

Upload: others

Post on 30-Apr-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Der Webproxy SquidEin Überblick und ein wenig (viel) HTTP

Dirk Geschke

Linux User Group Erding

28. April 2010

Dirk Geschke Squid

Page 2: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Gliederung

1 HTTP

2 Squid

3 Debugging-Hilfen

4 Praxis

Dirk Geschke Squid

Page 3: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

HTTP

Dirk Geschke Squid

Page 4: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Überblick

Hypertext Transfer Protocol dient der Übertragung vonDatenin erster Linie Webseiten aka HTML-Seitenrealisiert das World Wide Webverwendet TCP, in erster Linie Port 80unterstützt verschiedene Methoden

Dirk Geschke Squid

Page 5: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

RFC-Standards

HTTP 0.9: RFC-1945HTTP 1.0: RFC-1945HTTP 1.1: RFC-2616Authentisierungen: RFC-2617 - basic und digestHTTP over TLS: RFC-2818Erweiterungen wie WEBDAV: RFC-4918

Dirk Geschke Squid

Page 6: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Technisches Konzept: Request

Requests bestehen ausMethode Leerzeichen URL Leerzeichen Protocolgefolgt von Headerfelderngefolgt von einer Leerzeilegefolgt von optionalen Daten im Body, abhängig von derMethodeder Header besteht aus ASCII-Zeichen

Dirk Geschke Squid

Page 7: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Uniform Resource Locator

Beispiel:

http://User:[email protected]:80/search?q=lug-erding&...

Protokoll: http, https, ftp, file, . . .Benutzername: optionalPasswort: optionalhostname: ZielsystemPort: optionale Portnummer, default ist 80URL-Pfad Angabe der Daten auf dem Zielsystem, auchrelative URLQuery-String: optionale Daten für CGI-Programme

Dirk Geschke Squid

Page 8: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Zeichenbeschränkungen

nicht erlaubte Zeichen sind:

% / . .. # ? ; : $ , + @ & = 0-0x1f 0x7f-

unsichere Zeichen sind:

{}[ ] ~ | \ < > ’

Lösung: Kodierung mittels %{HEX}, z.B. Leerzeichen: %20Tilde wird häufig für persönliche Webseiten verwendet:http://www.example.com/~geschke

Dirk Geschke Squid

Page 9: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Methoden

GET Holen der DatenHEAD Anforderung des HeadersPOST Senden von Daten im Body an den Server

PUT Ablegen von Daten / RessourcenOPTIONS Abfrage der Fähigkeiten des Servers

DELETE Löschen von RessourcenLINK Erstellen von Links

UNLINK Löschen von LinksPATCH Patchen von DateienTRACE Verfolgen des Requests

CONNECT Proxy-Methode für SSL-Verbindungen

Dirk Geschke Squid

Page 10: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Technisches Konzept: Response

Antworten bestehen ausProtokoll Leerzeichen Statuscode Leerzeichen TextHeaderfelder, gefolgt von Doppelpunkt und WertenLeerzeileBody auch Entity Body genannt, abhängig von derMethodebei neueren Protokollen sind persistente Verbindungenmöglich

Dirk Geschke Squid

Page 11: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Statuscodes

1xx informative Nachrichten, definierter Bereich100-101

2xx erfolgreiche Aktion, definierter Bereich 200-2063xx redirects, definierter Bereich 300-3054xx Fehler vom Client, definierter Bereich 400-4155xx Fehler vom Server, definierter Bereich 500-505

Dirk Geschke Squid

Page 12: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Statuscodes

Code Bedeutung100 Continue101 Switching Protocols200 OK201 Created202 Accepted203 Non-Authoritive Information204 No Content205 Reset Content206 Partial Content

Dirk Geschke Squid

Page 13: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Statuscodes

Code Bedeutung300 Multiple Choices301 Moved Permanently302 Found303 See Other304 Not Modified305 Use Proxy306 (Unused)307 Temporary Redirect

Dirk Geschke Squid

Page 14: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Statuscodes

Code Bedeutung400 Bad Request401 Unauthorized402 Payment Required403 Forbidden404 Not Found405 Method not allowed406 Not Acceptable407 Proxy Authentication Required408 Request Timeout409 Conflict

Dirk Geschke Squid

Page 15: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Statuscodes

Code Bedeutung410 Gone411 Length Required412 Precondition Failed413 Request Entity Too Large414 Request URI Too Long415 Unsupported Media Type416 Requested Range Not Satisfiable417 Expectation Failed

Dirk Geschke Squid

Page 16: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Statuscodes

Code Bedeutung500 Internal Server Error501 Not Implemented502 Bad Gateway503 Service Unavailable504 Gateway Timeout505 HTTP-Version Not Supported

Dirk Geschke Squid

Page 17: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Authentisierungen

basic Benutzername und Passwort werdenunverschlüsselt aber Base64-kodiert imHTTP-Header übertragen

digest Hash (MD5) aus Passwort, Realm und einerNonce wird im HTTP-Header übertragen=⇒ effektiver Schutz gegen mitsniffen.

NTLM NT LAN Managerkein offizieller Standardproprietärgegenüber Webserver im Internet schwierig.erhöhter Traffickeine Passwortabfrage, läuft im Hintergrund

Dirk Geschke Squid

Page 18: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Headerfelder - allgemeine

Connection Anleitungen für die Verbindung wie keep-aliveoder close, eigentlich zu entfernendeHeaderfelder für Proxys

Date Zeit, wann der Request bearbeitet wurdeVia Angabe über welchen Proxy die Anfrage lief

Cache-Control Einflussmöglichkeiten auf den Cache, z.B.no-cache, no-store

Pragma ähnlich zu Cache-Control, deprecated

Dirk Geschke Squid

Page 19: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Headerfelder - Request

Host Hostname und Port des Servers, Pflicht beiHTTP/1.1!

From E-Mailadresse des Surfers!Referer Wo war der Client vorher?

User-Agent Welcher Browser wird verwendet?

Dirk Geschke Squid

Page 20: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Accept-Headerfelder - Request

Präferierungen über quality values aka q-Werte möglichAccept Welche Media-Typen werden angenommen?

Accept-Charset Welche Zeichensätze sind gewünscht?Accept-Encoding gzip, compressAccept-Language Welche Sprachen sind okay?

Dirk Geschke Squid

Page 21: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

bedingte Headerfelder - Request

Einfluss auf Server: Alle Daten oder nur den Header?If-Match bestimmtes (altes) Dokument

If-Modified-Since habe gecachte Version vonIf-None-Match für ETags

If-Range Ist der Bereich noch korrekt?If-Unmodified-Since altes Dokument

Range Anforderung von einem bestimmten Bereich derDaten, z.B. Bytes 500-1000

Dirk Geschke Squid

Page 22: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Headerfelder - Request

Felder für die Authorisierung von Clients und für ProxysAuthorization Verfahren und Wert

Cookies Keks vom ServerCookies2 Version des Kekses

Max-Forwards maximale Zahl der Proxys =⇒ fürTRACE-Methode

Proxy-Authorization explizites Feld für ProxyProxy-Connection explizites Feld für Proxy

Dirk Geschke Squid

Page 23: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Headerfelder - Response

Age Alter des Ergebnisses, Proxys müssen diesangeben

Server Name und Version des Webservers, z.B.Apache/2.2.14 (FreeBSD)

Vary es ist nur eine Variante basierend aufAccept-Header

Proxy-Authenticate Liste der Authensierungsanforderungenvom Proxy

Set-Cookie überträgt einen KeksSet-Cookie2 anderes KeksformatWWW-Authenticate Liste der Authentisierungsanforderungen

vom Server

Dirk Geschke Squid

Page 24: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Headerfelder - Daten

Location Wo liegen die Daten wirklich =⇒ RedirectContent-Type Welcher Art sind die Daten?Content-Encoding Sind die Daten gepackt?Content-Length Anzahl der Bytes der Daten =⇒ persistente

Verbindungen!Content-Language SpracheContent-Range Bereich der DatenContent-MD5 MD5-Summe über die Daten

Dirk Geschke Squid

Page 25: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Headerfelder für Caches

ETag Entity Tag, ändern sich die Daten, so ändert sichder ETag =⇒ starker Hinweis auf Gültigkeit vongecachten Daten

Expires Bis wann ist der Inhalt gültig?Last-Modified Wann wurde der Inhalt das letzte Mal geändert?

Dirk Geschke Squid

Page 26: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Performance-Optimierungen

multiple Verbindungen paralleler Download mehrerer URLs=⇒ mehrere TCP-Verbindungen, Variante:Ranges!

persistente Verbindungen bestehende Verbindung mehrfachbenutzen =⇒ nur eine TCP-Verbindung, nur einTCP-Handshake

Pipelining mehrere Requests in Folge in einer Verbindungabsetzen =⇒ am schnellsten, aber problematisch!

Dirk Geschke Squid

Page 27: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

allgemeine HeaderfelderRequest-HeaderfelderResponse-HeaderfelderEntity-Headerfelder

Beispiel

HEAD / HTTP/1.0

HTTP/1.1 200 OKDate: Tue, 27 Apr 2010 20:14:11 GMTServer: ApacheLast−Modified: Tue, 13 Apr 2010 12:41:24 GMTETag: "1041200f−2bb3−944f8500"Accept−Ranges: bytesContent−Length: 11187Connection: closeContent−Type: text/htmlWeblclient

Webserver

Dirk Geschke Squid

Page 28: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Webproxys / Squid

Dirk Geschke Squid

Page 29: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Eigenschaften

Proxy zentraler DrehpunktCache Einsparung von Internetressourcen

Logdateien erleichtert die FehlersucheACL extrem gute Filtermöglichkeiten

Privacy Alle Anfragen kommen vom Proxy, Headerfelderkönnen gefiltert/modifiziert werden, siehe z.B.http://panopticlick.eff.org/

Kommunikation Client spricht HTTP mit Proxy, auch bei FTP!Dokumentation hervorragend!

Dirk Geschke Squid

Page 30: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

besondere Eigenschaften

Bandbreitenmanagement via cache-poolsVirenscanning via ICAP möglichexterne Programme einbindbar wie z.B. squidGuardViele Authentisierungsverfahren: Basic, Digest, NTLM,Kerberos, . . .reverse Proxy möglichSSL Bump: Filterung in SSL-Seiten per squid-in-the-middleIPv6-SupportQoS-Supportkaskadierbar: Parents, Siblings, etc.

Dirk Geschke Squid

Page 31: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Besonderheiten bei Proxys/Caches

Requests mit vollständiger URLFTP wird zum Client über HTTP abgewickeltCONNECT-Methode zum Tunneln von z.B. httpsMethode PURGE zum expliziten Löschen einzelnerRequests aus dem Cache (via squidclient)Prefetching möglich: Vorabfüllung des CachesCachemgr: Auslesen der Squid-StatistikenCluster: Hierarchische Proxys mit diversen Protokollen

Dirk Geschke Squid

Page 32: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Filtermöglichkeiten

Methode: GET, POST, CONNECT, . . .Protokoll: http, ftp, . . .BrowserURL / reguläre AusdrückeIPs / Domains / Ports / MAC-Adressen (ARP)Zeit: Tage, StundenMIME-Types, z.B. AudioErweiterung durch externe ACLs möglichEntfernen / Ändern von HeaderfeldernAuslagerung in Dateien, z.B. URL-Filterlisten

Dirk Geschke Squid

Page 33: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Client-Konfiguration

manuell z.B.: http_proxy=http://myproxy:3128/PAC-Datei Proxy Auto-Configuration via URL, z.B.:

http://myserver/proxy.pac

JavaScript-Datei zum Finden von Proxys oderdirektem Zugriff

WPAD Web Proxy Auto-Discovery: auomatisches FindenPAC-Datei wird von einem Server geladenURL via DHCP, option code 252SLP, Service Location ProtocolDNS, http://wpad.Domain/wpad.datDNS, SRV-RecordsDNS, URL aus TXT-Record

Dirk Geschke Squid

Page 34: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Was darf im Cache landen oder nicht?

POST-Requests: nicht cachenAuthentisierung erforderlich: nicht cachenbasierend auf Statuscode z.B. 200, 206, 300, 301, 410cachebardynamische SeitenVerwendung von Expires mit aktuellem Datum oderinvaliden Eintrag wie Expires: 0

Verwendung von Pragma: no-cache

Cookies, siehe Cache-Control

mit Hilfe des Headerfeldes Cache-Control

Dirk Geschke Squid

Page 35: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Cache-Control Werte

private Nur der eigene Browser darf cachenpublic Proxys dürfen auch cachen, auch bei

Authentisierungno-cache darf im Cache sein aber Validierung erforderlich,

Felder können angegeben werden, die nichtgespeichert werden dürfen, z.B.no-cache=Set-Cookie

max-age Verfallzeit, impliziert publics-max-age max-age für Proxys (shared cache), impliziert

kein public

must-revalidate Aktualität muss überprüft werdenproxy-revalidate Aktualität muss von Proxys überprüft werden

no-store darf nicht gecacht werden!

Dirk Geschke Squid

Page 36: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Refresh erzwingen

Firefox & Co SHIFT+ReloadIE CTRL+Reload

=⇒ If-Modified-Since-Header wird entferntReload-Problem: Wenn der Transfer zu lange dauert. . .

Dirk Geschke Squid

Page 37: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Debugging vonWebproxys und Webservern

Dirk Geschke Squid

Page 38: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Logdateien geben oft schon Aufschluss über das Problem,Statutscodes, etc.

telnet einfaches Testen von Servern/Proxystcpdump mitsniffen des tatsächlichen Traffics, Tipp:

strings!Live HTTP Headers Plugin für Firefox, zeigt die gesendeten

und empfangenen Header an.RFCs Was sagt der Standard?

Dirk Geschke Squid

Page 39: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Praxis

Dirk Geschke Squid

Page 40: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Real-Live-Tests

Client versus ServerGET versus POSTAuthentisierung gegen ServerAuthentisierung gegen ProxyClient versus Proxy versus ServerLogdateienProblematik von CONNECTSpielereien...

Dirk Geschke Squid

Page 41: Der Webproxy Squid · Squid Debugging-Hilfen Praxis Der Webproxy Squid Ein Überblick und ein wenig (viel) HTTP Dirk Geschke Linux User Group Erding 28. April 2010 Dirk Geschke Squid

HTTPSquid

Debugging-HilfenPraxis

Fine!

Dirk Geschke Squid