ئالدىغا يۆتكەيدىغان proxy ئارقىلىق ئادەتتىكى HTTP تەلىپىدە Node proxy غا ئۇلىنىدۇ ۋە نىشان URL نى تەلەپ قۇرىدا ئەۋەتىدۇ. ئۈچ قىممەت شۇ بىر تەلەپنى تەسۋىرلەيدۇ:

قىممەتمىسال
TCP ئۇلىنىش ئاخىرقى نۇقتىسىproxy.example:8080
تەلەپ نىشانىhttp://example.com/news?q=proxy
Host باش ئېتىزىexample.com

بۇ Node 22 مىسالى ئايرىمنى ئېنىق قىلىدۇ:

const http = require('node:http');
const destination = new URL('http://example.com/news?q=proxy');

const request = http.get({
  hostname: 'proxy.example',
  port: 8080,
  path: destination.href,
  headers: { Host: destination.host },
  signal: AbortSignal.timeout(15000),
}, (response) => {
  console.log(response.statusCode);
  response.on('error', console.error);
  response.resume();
});
request.on('error', console.error);

ئاخىرقى نۇقتا ئورۇن باسقۇچ؛ ئاممىۋى HTTP سىنىقى ئۈچۈن HTTP proxy تىزىملىكىدىن نامزات تاللاپ، ئۇنىڭ جاۋابىنى تەكشۈرۈڭ. مىسال ھالەتنى بېسىپ چىقارغاندىن كېيىن جاۋابنى قۇرۇتىدۇ؛ پروگرامما ئۇنىڭ ئورنىغا گەۋدىنى ئىشلىتەلەيدۇ. سوئال تەلەپ نىشانىنىڭ بىر قىسمى بولۇپ قالىدۇ.

تولۇق URL نېمىشقا شۇ يەردە بولىدۇ

مەنبە مۇلازىمېتىر ئادەتتە /news?q=proxy غا ئوخشاش نىشان ئالىدۇ. ئالدىغا يۆتكەيدىغان proxy غىمۇ نىشان كېرەك، شۇڭا HTTP/1.1 نىشاننى مۇتلەق شەكىلدە بەلگىلەيدۇ:

GET http://example.com/news?q=proxy HTTP/1.1
Host: example.com

HTTP/1.1 قائىدىسىگە ئاساسەن، مۇتلەق شەكىلنى ئالغان proxy يۆتكەشتە URI نىڭ ھوقۇقىنى ئىشلىتىدۇ ۋە ماس كەلمەيدىغان قوبۇل قىلىنغان Host مەيدانىنى ئالماشتۇرىدۇ. ماس كېلىدىغان نىشان Host باش ئېتىزىنى ئەۋەتكەندە چىقىدىغان تەلەپ يەنىلا ئېنىق بولىدۇ. Node نىڭ ئۇلىنىش كومپيۇتېر ئىسمى ۋاسىتىچى، شۇڭا باش ئېتىزىنى شۇ ئۇلىنىش ئادرېسىغا تايىنىشنىڭ ئورنىغا قەستەن تەڭشەڭ.

ئەگەر دەلىللەش كېرەك بولسا، proxy نىڭ سالاھىيەت ئۇچۇرى ئۆز باسقۇچىغا تەۋە. Node نىڭ auth تەلەپ تاللاش تاللىنىشى بايلىق ئۈچۈن Authorization باش ئېتىزى ياسايدۇ؛ بۇ ئومۇمىي proxy كىرىش تاللىشى ئەمەس. ئالماشتۇرۇش تېخىمۇ مۇرەككەپ بولغاندا proxy تەلەپ قىلغان سىخېما ۋە مۇۋاپىق proxy خېرىدارىنى ئىشلىتىڭ.

HTTPS توننېل قوشىدۇ

بۇ مىسال ئادەتتىكى HTTP يۆتكەشنى ئۆز ئىچىگە ئالىدۇ. ئادەتتىكى HTTP proxy ئارقىلىق HTTPS ئۇلىنىشى ئالدى بىلەن CONNECT example.com:443 تەلەپ قىلىدۇ، ئاندىن قوبۇل قىلىنغان توننېل ئىچىدە نىشانغا TLS باشلايدۇ. مىسالنىڭ URL نى HTTPS قىلىش بۇ باسقۇچلارنى قوشمايدۇ.

HTTPS ياكى ئارىلاش يۈكلەم ئۈچۈن كېرەكلىك توننېل قوللىشى بار ئاسرايدىغان proxy ۋاكالەتچىسى ياكى ئەۋەتكۈچىنى ئىشلىتىڭ. ماس Node نەشرىلىرى ئۈچۈن بىر تاللاش ProxyAgent بىلەن Undici نىڭ fetch. ئادەتتىكى HTTP ئالماشتۇرۇش ئۆزى كونترول قىلىدىغان ياكى چۈشىنىدىغان نەرسە بولغاندا بۇ كىچىك ئاساسىي خېرىدار مىسالىنى ساقلاڭ.

مۇناسىۋەتلىك ماقالىلەر