Istnieje kilka różnych typów serwerów proxy. Ponieważ wspomniałeś o nagłówkach żądań, zakładam, że mówisz o serwerach proxy HTTP, które przesyłają żądania HTTP, a nie pakiety.
UWAGA: W szczególnym przypadku HTTPS requests (TLS/SSL poprzez CONNECT
), serwery proxy będzie tylko naprzód zawartość pakietów TCP (i nie są w stanie kontrolować pakiety chyba działając jako man-in-the-middle pełnomocnika) .
Oczywiście to zależy od oprogramowania pośredniczącego i jej konfiguracji, ale HTTP proxy są spodziewać śledzić W3C Guidelines for Web Content Transformation Proxies, w którym stwierdza się wiele rzeczy, ale najbardziej relevantly:
Inne niż przeliczanie między serwerami proxy HEAD
i GET
nie może zmieniać metod żądań.
Jeżeli wniosek zawiera dyrektywę Cache-Control: no-transform
, serwery proxy nie musi zmieniać żądania inne niż zgodne z przezroczystego zachowania HTTP zdefiniowany w dokumencie RFC 2616 sekcja sekcje HTTP 14.9.5 i 13.5.2 i sekcji, aby dodać pola nagłówka, jak opisano w 4.1.6 Additional HTTP Header Fields.
Poza modyfikacjami wymaganymi przez RFC 2616 proxy HTTP nie powinny zmieniać wartości pól nagłówka innych niż polach nagłówka User-Agent
, Accept
, Accept-Charset
, Accept-Encoding
i Accept-Language
i nie musi usuwać pola nagłówka.
Serwery proxy powinny dodać adres IP inicjatora żądania na końcu listy rozdzielanej przecinkami w polu nagłówka HTTP X-Forwarded-For
.
Serwery proxy muszą (zgodnie z RFC 2616) zawierać pole nagłówka HTTP Via
.
Podsumowując, można ogólnie oczekiwać te nagłówki HTTP zostać zmienione/dodane przez zgodnym ze standardami Proxy:
User-Agent
Accept
Accept-Charset
Accept-Encoding
Accept-Language
X-Forwarded-For
Via
nie dostanę część "przekazywać wnioski nie pakietów". Czy masz na myśli to, że zrekonstruuje on żądanie http z przychodzących pakietów, a następnie je zmodyfikuje? – Ashwin
@Ashwin: Myślę, że nie rozumiesz tutaj protokołu HTTP. HTTP to protokół aplikacji, który znajduje się w warstwie _application_ [modelu OSI] (http://en.wikipedia.org/wiki/OSI_model). Wszystkie "pakiety" HTTP są naprawdę pakietami TCP, a HTTP nie zajmuje się bezpośrednio pakietami (wszystko to dzieje się na warstwach _transport_ i _network_ modelu [OSI] (http://en.wikipedia.org/wiki/OSI_model)). – Xenon
, gdy zgłoszę żądanie w sekcji Bowser, takie jak "www.google.com", to żądanie przechodzi z poziomu aplikacji (przeglądarki) do poziomu fizycznego (który jest kartą NIC). Teraz serwer proxy pobiera go, a następnie dekoduje dane poziomu fizycznego do warstwy 2 i tak dalej ... do transportu (warstwa 4). tutaj modyfikuje dane, a następnie przekazuje je w prawo? – Ashwin