Squid podėlis (cache)

Įgaliotoji žiniatinklio stotis (proxy)

Podėliavimas (angl. Caching) – per HTTP, FTP ar Gopher protokolus gaunamų interneto objektų (pvz., įvairios rinkmenos, žiniatinklio dokumentai) perkėlimas į vietą, artimesnę užklausą vykdančiam naudotojui. Žiniatinklio naršyklės tokiu atveju gali naudoti vietiniame kompiuterių tinkle esantį Squid podėlį, kaip įgaliotają žiniatinklio stotį, kas žymiai padidina dažnai naudojamų ir podėlyje išsaugotų objektų parsiuntimo greitį. Be to, naudojant Squid podėlį, sumažėja interneto linijos apkrova. Tai dažnai ypač naudinga Interneto paslaugų tiekėjams, kadangi taip klientams sudaromas didesnės interneto greitaveikos įspūdis. Squid yra ne tik podėlio tarnybinė programa, bet ir įgaliotoji stotis (pateikianti užklausas kitoms stotims taip, tarsi pati būtų galutinis naudotojas), todėl gali padėti apsaugoti jos vartotojų privatumą ir anonimiškumą, bei užtikrinti papildomos apsaugos lygmenį. Kita vertus, Squid gali kaupti ir programos darbo žurnalą, kuriame matyti, kokie naudotojai, kada ir kokias svetaines naršė, kokias rinkmenas parsisiuntė. Apibendrinus programos darbo žurnalą matyti, kokie naudotojai labiausiai prisidėjo prie interneto linijos apkrovos, kokios lankomiausios svetainės ir t. t.
Klientinė programa (pvz.: naršyklė) gali būti išimtinai suderinta taip, kad būtų naudojama konkreti įgaliotoji stotis, arba įgaliotoji stotis gali būti naudojama ir atskirai nederinant klientinių programų. Pastarasis metodas yra vadinamas skaidriuoju podėliavimu (angl. „transparent caching“). Šiuo atveju Squid perima visas išsiunčiamas HTTP užklausas ir įsimena visus pateiktus atsakymus į užklausas. Dažnai naudotojai gali net neįtarti, kad jų užklausas apdoroja ir registruoja Squid tarnybinė programa.
Yra galimybė padidinti anonimiškumo lygį, naudojant kai kurias Squid funkcijas, pavyzdžiui, uždraudžiant ar pakeičiant tam tikrus antraštinius laukus kliento HTTP užklausose. Kaip naudojamos šios funkcijos, ir apskritai ar jos naudojamos, nustato asmuo, valdantis Squid tarnybinę stotį.

Atvirkštinė įgaliotoji stotis

Aukščiau aprašytas klasikinis podėlio veikimo principas, kai podėlyje saugomi ribotam naudotojų ratui skirti objektai iš neriboto tinklalapių skaičiaus. Galimas ir kitoks scenarijus, vadinamoji atvirkštinės įgaliotosios stoties (angl. reverse proxy) situacija, skirta tinklalapių tarnybinių stočių spartinimui (naudojama httpd_accel_host funkcija). Šiuo atveju, podėlis aptarnauja neribotą naudojų skaičių, pateikdamas objektų iš riboto tarnybinių stočių skaičiaus (gal net iš vienos stoties) kopijas.
Pavyzdžiui, jeigu lėta.stotis.lt yra „tikroji“ tarnybinė stotis, o www.pavyzdys.lt yra Squid podėlis, tai „spartinantysis“ Squid podėlis, pirmą kartą gavęs užklausą informacijai iš www.pavyzdys.lt parsiųsti, parsiunčia reikiamą informaciją iš lėta.stotis.lt, o gavęs pakartotiną užklausą (pavyzdžiui, iš kitų vartotojų) tai pačiai informacijai gauti, vartotojui pateikia podėlyje išsaugotą informacijos kopiją.
Taigi, be jokio vartotojo įsikišimo, sumažinamas srautas į „tikrąją“ tarnybinę stotį, taip sumažinant tarnybinės stoties procesoriaus(-ių), atminties ir interneto linijos apkrovą.
Kita vertus, „tikroji“ tarnybinė stotis, be papildomos konfigūracijos, ataskaitose negalės atvaizduoti tikrosios apkrovimo (lankomumo) statistikos, kadangi atrodys, kad visas užklausas vykdė viena atvirkštinė įgaliotoji stotis. Kad taip nenutiktų, galima naudoti HTTP antraštę X_HTTP_FORWARDED_FOR HTTP, kurią su tikrojo naudotojo IP adresu įgaliotoji stotis perduotų „tikrajai“ tarnybinei stočiai.
Squid sistema vienu metu gali veikti ir kaip tiesioginė ir kaip atvirkštinė įgaliotoji tarnybinė stotis.