![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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/1.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/2.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/3.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/4.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/5.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/6.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/7.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/8.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/9.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/10.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/11.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/12.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/13.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/14.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/15.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/16.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/17.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/18.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/19.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/20.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/21.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/22.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/23.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/24.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/25.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/26.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/27.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/28.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/29.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/30.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/31.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/32.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/33.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/34.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/35.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/36.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/37.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/38.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/39.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/40.jpg)
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](https://reader030.vdokument.com/reader030/viewer/2022041007/5ead4725368de2443b12cb3d/html5/thumbnails/41.jpg)
HTTPSquid
Debugging-HilfenPraxis
Fine!
Dirk Geschke Squid