pl.trammer.ludwik.ludproxy
Class RequestHeader

java.lang.Object
  extended by pl.trammer.ludwik.ludproxy.Header
      extended by pl.trammer.ludwik.ludproxy.RequestHeader
All Implemented Interfaces:
Serializable

public class RequestHeader
extends Header

Obiekty klasy reprezentują nagłówki zapytań HTTP. Klasa dziedziczy z abstrakcyjnej klasy Header.

Author:
Ludwik Trammer
See Also:
Header, ResponseHeader, Serialized Form

Constructor Summary
RequestHeader(LudInputStream in)
          Tworzy obiekt nagłówka na podstawie danych znajdujących się w strumieniu wejściowym.
RequestHeader(RequestHeader original)
          Konstruktor kopiujący.
RequestHeader(String method, String path, String host, int port)
          Konstruktor tworzący nowy obiekt nagłówka zapytania, z pustymi polami nagłówka.
 
Method Summary
 String getHost()
           
 String getMethod()
           
 String getPath()
           
 int getPort()
           
 String getUrl()
           
 boolean keepAlive()
          Udziela odpowiedzi na pytanie czy nagłówek jest częścią trwałego połączenia HTTP.
 RequestHeader newForRetransmission()
          Zwraca nowy obiekt nagłówka zapytania zmodyfikowany w ten sposób, że jest gotowy do wysłania dalej.
 
Methods inherited from class pl.trammer.ludwik.ludproxy.Header
appenedField, containsField, fieldContainsValue, fieldEquals, getBytes, getCacheControlValue, getField, getFieldAsArray, getFieldAsArray, getFieldAsDate, getFields, getProtocol, getProtocolVersion, normalizeFieldName, receivedDate, recivedDate, removeField, setField, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RequestHeader

public RequestHeader(RequestHeader original)
Konstruktor kopiujący.

Parameters:
original - obiekt na podstawie którego zostanie stworozny nowy obiekt klasy

RequestHeader

public RequestHeader(String method,
                     String path,
                     String host,
                     int port)
Konstruktor tworzący nowy obiekt nagłówka zapytania, z pustymi polami nagłówka.

Parameters:
method - metoda zapytania, np. GET
path - ścieżka zasobu, np. /index.html
host - adres serwera na którym znajduje się zasób, np. www.pjwstk.edu.pl
port - port na którym czuwa serwer HTTP, np. 80

RequestHeader

public RequestHeader(LudInputStream in)
              throws HttpError,
                     IOException
Tworzy obiekt nagłówka na podstawie danych znajdujących się w strumieniu wejściowym.

Dane znajdujące się w strumieniu wejściowym interpretowane są jako nagłówek HTTP i czytane aż do końca nagłówka. W wypadku problemów z formatem danych zostanie zwrócony jeden z błędów z rodziny HttpError.

Parameters:
in - strumień wejściowy, w którym znajdują się dane nagłówka
Throws:
HttpError
IOException
Method Detail

getHost

public String getHost()
Returns:
adres hosta do którego kierowane jest zapytanie

getPort

public int getPort()
Returns:
numer portu na którym czuwa serwer do którego kierowane jest zapytanie

getPath

public String getPath()
Returns:
ścieżka której dotyczy zapytanie (np. /index.html)

getMethod

public String getMethod()
Returns:
metoda wykorzystywana w zapytaniu (np. POST lub GET)

getUrl

public String getUrl()
Returns:
Adres URL zasobu o który prosi zapytanie (np. www.pjwstk.edu.pl/index.html lub 192.168.1.1:2222/panel/)

newForRetransmission

public RequestHeader newForRetransmission()
Zwraca nowy obiekt nagłówka zapytania zmodyfikowany w ten sposób, że jest gotowy do wysłania dalej.

Między innymi usuwane są nagłówki zdefiniowane w RFC 2616 jako "Hop-by-Hop" (dotyczące jedynie danego połączenia między dwoma maszynami), dodawany jest nagłówek "Via" z informacjami o serwerze proxy, a nagłówek "Connection" (regulujący czy połączenie jest trwałe czy nietrwałe) ustawiany jest na stosowną wartość.

Returns:
nowy obiekt klasy RequestHeader

keepAlive

public boolean keepAlive()
Udziela odpowiedzi na pytanie czy nagłówek jest częścią trwałego połączenia HTTP.

W tej chwili trwałe połączenia obsługiwane są tylko dla HTTP 1.1, w sytuacjach gdy zapytanie nie wymusza nietrwałego połączenia przez nagłówek Connection.

Returns:
czy to połączenie jest trwałe?