Arau batek http://reports.example:80/ proxy baten bidez bidaltzen du, baina http://reports.example/ zuzenean joaten uzten du. URL horiek HTTP amaierako puntu arrunt bera deskribatzen dute. Desadostasuna, normalean, haien ataka analizatuak literalki konparatzetik dator.

URI.getPort()-ek -1 itzultzen du URIan atakarik agertzen ez denean. Ez du eskemaren balio lehenetsia ordezkatzen. Balioa 80-rekin konparatzen duen bideratze-politika batek bigarren URLa galduko du.

String scheme = uri.getScheme();
int port = uri.getPort();
if (port == -1) {
    if ("http".equalsIgnoreCase(scheme)) port = 80;
    else if ("https".equalsIgnoreCase(scheme)) port = 443;
}

Aplikatu normalizazio bera konparaketaren bi aldeetara. Eskaeraren URIa soilik zuzentzeak ataka baztertua duen helmuga konfiguratu bat parekatu gabe uzten du. Konparatu host-a, ataka eraginkorra eta xede den eskema; baztertu helmuga gaizki eratuak edo hostik gabekoak definitutako errore-bide baten bidez.

Ez bihurtu callback bakoitza HTTP erabaki

Hautatzaile lehenetsiari socket gordinen konexioetarako ere galdetu ahal zaio, socket eskema erabiliz. Host eta ataka soilik bat etortzeak ez du lortu behar callback horrek URL eskaeretarako pentsatutako HTTP proxy bat itzultzea. Bideratu onartzen ez diren eskemak aurreko hautatzailera, haren jokabide egokia mantenduz.

Harrapatu aurreko hautatzaile hori zeurea instalatu aurretik. Ordezkoaren barrutik uneko lehenetsia bilatzeak ordezkoa bera deitu dezake berriro.

Erregistratu eskema, host-a, jatorrizko ataka eta ataka eraginkorra desadostasuna diagnostikatzean. Ez fidatu behaketarako zenbaki bakar batekin edo callback-en ordenarekin JDK inplementazioen artean. Politikak URI bakoitzerako erabaki zuzena hartu behar du.

Erlazionatutako artikuluak