Àwọn ọ̀nà abẹ́lẹ̀ Java Socket HTTP CONNECT ní OpenJDK 25
Lo ipa ọ̀nà socket ti proxy HTTP ní OpenJDK 25 láti dé iṣẹ́ TCP tí a fọwọ́ sí, ní kíkọ ipò ìparí proxy àti ibi tí a ń lọ sọ́tọ̀.
Ìlànà TCP àkànṣe lè gba inú proxy HTTP kọjá nígbà tí proxy yẹn bá gba CONNECT sí ibi tí a ń lọ. Ìlànà ohun èlò kò ní láti di HTTP: HTTP ni ó ń dá ọ̀nà abẹ́lẹ̀, lẹ́yìn náà ohun èlò náà ń pààrọ̀ àwọn byte tirẹ̀ nínú rẹ̀.
OpenJDK 25 ń pèsè ipa ọ̀nà proxy HTTP nínú Socket(Proxy). Ìṣe rẹ̀ ń ṣe ìpààrọ̀ CONNECT ó sì ń dá socket tí ó so pọ̀ padà fún ohun èlò láti lò.
Proxy route = new Proxy(
Proxy.Type.HTTP,
new InetSocketAddress("proxy.example", 8080));
try (Socket socket = new Socket(route)) {
socket.setSoTimeout(10000);
socket.connect(
InetSocketAddress.createUnresolved("tcp-service.example", 8443),
5000);
InputStream input = socket.getInputStream();
OutputStream output = socket.getOutputStream();
}Ẹ̀ka yìí ń lo àwọn kíláàsì láti java.net àti java.io. Rọ́pò àwọn ipò ìparí méjèèjì kí o sì ṣe ìpààrọ̀ ìlànà kí o tó kúrò nínú blọ́ọ̀kì try. Fún àfojúsùn TCP gbangba tí a fọwọ́ sí, yan àwọn olùdíje HTTP láti àtòjọ proxy HTTP lẹ́yìn tí o bá ti yẹ̀wò àṣẹ CONNECT fún ibudo àfojúsùn yẹn. Àdírẹ́sì proxy ni ibi tí Java ti kọ́kọ́ so pọ̀; àdírẹ́sì tí a fi fún connect ni ó ń fi iṣẹ́ tí proxy gbọdọ̀ dé hàn.
Ibi tí a ń lọ tí a kò tíì yanjú ń pa orúkọ olùgbàléjò rẹ̀ mọ́ fún ìbéèrè CONNECT ti ìṣe yìí. InetSocketAddress tí a ti yanjú ń fún ìbéèrè yẹn ní àdírẹ́sì IP tí a ti yanjú. Ìyàtọ̀ yẹn ṣe pàtàkì nígbà tí proxy bá gbọdọ̀ yanjú orúkọ iṣẹ́ tàbí lo ìlànà tí ó dá lórí orúkọ olùgbàléjò.
Ohun tí ìsopọ̀ tí ó ṣàṣeyọrí ń fi sílẹ̀ fún ọ
Àwọn ṣíṣàn tí ó jáde ń gbé dátà iṣẹ́ tí ó wà nínú ọ̀nà abẹ́lẹ̀. Wọn kò fi ìdáhùn HTTP ọ̀tọ̀ hàn tí ohun èlò rẹ gbọdọ̀ kà kí ó sì sọnù. Bí o bá fi ìpààrọ̀ CONNECT kejì kún un, yóò fi ọ̀rọ̀ HTTP ránṣẹ́ sí iṣẹ́ náà lẹ́yìn tí JDK ti dá ọ̀nà abẹ́lẹ̀ náà tán.
Àpẹẹrẹ náà ń gbé àkókò ààlà ìsopọ̀ àti àkókò ààlà kíkà socket kalẹ̀; àwọn wọnnì jẹ́ ìṣàkóso ọ̀tọ̀ọ̀tọ̀, kì í ṣe àkókò ààlà kan ṣoṣo fún ìpàdé ohun èlò.
Àṣẹ CONNECT ṣì jẹ́ ti proxy. Ipò ìparí tí ó ń fi àwọn ìbéèrè wẹ́ẹ̀bù lasan kọjá lè kọ ibudo iṣẹ́ náà kọ̀ tàbí ó lè béèrè ìjẹ́rìí kí ó tó ṣí ọ̀nà abẹ́lẹ̀. Pa àwọn ìkùnà yẹn mọ́ sọ́tọ̀ kúrò lọ́wọ́ ẹ̀rọ ìsìn tí ó gba ọ̀nà abẹ́lẹ̀ ṣùgbọ́n tí ó kọ ìlànà ohun èlò rẹ lẹ́yìn náà.
Tí ìlànà yẹn bá nílò TLS, ṣe ìdúnàádúrà TLS nípasẹ̀ socket tí ó so pọ̀ pẹ̀lú orúkọ olùgbàléjò tí a pinnu fún iṣẹ́ náà àti àwọn àyẹ̀wò ẹ̀rí ìbòjú deede. CONNECT nìkan kò fi àṣírí bo ṣíṣàn náà. Fún HTTP API gidi, ẹ̀rọ alábàáṣepọ̀ HTTP ṣì jẹ́ ojú-ọ̀nà tí ó rọrùn jù nítorí pé ó tún ń bojútó àwọn ìfiránṣẹ́ HTTP.