Serwer pośredniczący

Serwer pośredniczący (pośrednik, ) – oprogramowanie lub serwer z odpowiednim oprogramowaniem, które dokonuje pewnych operacji (zwykle nawiązuje połączenia) w imieniu użytkownika. Często utożsamiany z pośrednikiem HTTP (HTTP proxy).

Użytkownik zleca pośrednikowi zadania za pomocą odpowiedniego klienta. W przypadku usług FTP i HTTP jest to klient FTP i przeglądarka internetowa. Obok tych popularnych rozwiązań znane są także inne, jak np. pośredniki (proxy) aplikacyjne, transferujące zapytania aplikacji, w istocie pełni ono funkcję oprogramowania pośredniczącego i realizuje „trasowanie zależne od danych”. Inne rodzaje pośredników mogą obsługiwać np. sieciowe protokoły transmisji głosu i innych usług.

Rodzaje serwerów pośredniczących 

Serwery pośredniczące różnią się zależnie od tego gdzie w jakim punkcie się znajdują pomiędzy klientem i serwerem docelowym. Zwykle jeśli serwer jest bliżej użytkownika, to mówimy o  (lub ), a jeśli jest dalej to o .

Open proxy 

Serwery tego typu mogą służyć do częściowej anonimizacji lub przyśpieszania komunikacji. Charakteryzują się tym, że znajdują się poza kontrolą serwerów docelowych. Użytkownik, czy ogólniej klient, łączy się z takim serwerem, a ten pobiera dane gdzieś z dowolnego miejsca z Internetu. Anonimizacja może się opierać na ukrywaniu adresu IP komputera na którym pracuje użytkownik. Serwer open proxy może jednak celowo podawać źródłowe IP użytkownika poprzez nagłówek X-Forwarded-For.

Reverse proxy 
Serwery tego typu mogą mieć wiele zastosowań m.in. odciążanie serwerów docelowych, cachowanie, czy ukrywanie serwerów docelowych. Charakteryzują się tym, że są przygotowywane pod konkretny serwer lub serwery docelowe. Mogą znajdować się zarówno w tej samej serwerowni co serwer docelowy, ale mogą również stanowić element sieci dostawczej (CDN) rozrzuconej na dużym obszarze.

Cechy serwerów pośredniczących 
Zalety:
 potencjalnie krótszy czas oczekiwania na załadowanie się strony WWW poprzez ściągnięcie danych z serwera położonego bliżej użytkownika;
 serwer proxy może mieć lepsze łącza, niż docelowy serwer;
 zmniejszenie przepływu danych na dalekich dystansach (odciążenie słabszych łączy internetu);
 odciążenie serwera docelowego poprzez buforowanie żądań lub cachowanie danych;
 cachowanie danych powoduje również szybsze pobranie ich na komputer kliencki, ponieważ dane te są statyczne (nie muszą być generowane);
 zmniejszanie ilości przesyłanych danych poprzez różne metody pakowania (deflate, brotli);
 możliwość odizolowania klienta od serwera (co może być zabezpieczeniem przed włamaniem; może to stanowić zabezpieczeniem klienta w przypadku forward proxy, a w przypadku reverse proxy serwera docelowego).
Wady:

 potencjalnie dłuższy czas ładowania danych w przypadku nowych danych (nie zapamiętanych w cache serwera proxy);
 utrudnienie identyfikacji klientów (co może zaburzać statystyki użycia lub prezentowanie nieprawidłowych danych ze złej lokalizacji);
 zwiększenie ilości miejsca na przechowywania danych (dodatkowe dane poza tymi na serwerze docelowym);
 utrudnienia we wdrażaniu nowych wersji aplikacji przez przechowywanie starych wersji plików;
 problemy z serwowaniem starych (nieaktualnych) danych.

Zobacz też 

 serwer anonimizujący
 Squid (oprogramowanie)

Architektura Internetu