Node HTTP-ni proxy üzərindən yönləndirən sorğu sətri
Bağlantı son nöqtəsini, mütləq hədəfi və Host başlığını ayıraraq Node-un əsas müştərisi ilə adi HTTP proxy sorğusu qurun.
İrəli proxy üzərindən adi HTTP sorğusu üçün Node proxy-yə qoşulur və təyinat URL-ni sorğu sətrində göndərir. Üç dəyər bu bir sorğunu təsvir edir:
| Dəyər | Nümunə |
|---|---|
| TCP bağlantı son nöqtəsi | proxy.example:8080 |
| Sorğu hədəfi | http://example.com/news?q=proxy |
| Host başlığı | example.com |
Bu Node 22 nümunəsi ayrılığı aşkar edir:
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);
Son nöqtə yer tutucudur; açıq HTTP sınağı üçün HTTP proxy siyahısından namizəd seçin və cavabını yoxlayın. Nümunə statusu çap etdikdən sonra cavabı boşaldır; tətbiq əvəzində gövdəni istehlak edə bilər. Sorğu sorğu hədəfinin bir hissəsi olaraq qalır.
Tam URL niyə orada olmalıdır
Mənbə serveri adətən /news?q=proxy kimi hədəf alır. İrəli proxy həm də təyinatı bilməlidir, buna görə HTTP/1.1 mütləq formalı hədəfi müəyyən edir:
GET http://example.com/news?q=proxy HTTP/1.1
Host: example.com
HTTP/1.1 qaydalarına əsasən, mütləq forma alan proxy yönləndirərkən URI-nin səlahiyyətindən istifadə edir və uyğunsuz alınmış Host sahəsini əvəz edir. Uyğun təyinat Host başlığı göndərmək gedən sorğunu yenə də birmənalı saxlayır. Node-un bağlantı host adı vasitəçidir, buna görə başlığı həmin bağlantı ünvanına güvənmək əvəzinə qəsdən təyin edin.
Doğrulama tələb olunursa, proxy-nin etimadnamələri onun öz keçidinə aiddir. Node-un auth sorğu seçimi resurs üçün Authorization başlığı yaradır; bu, ümumi proxy giriş seçimi deyil. Mübadilə daha mürəkkəb olduqda proxy-nin tələb etdiyi sxemdən və uyğun proxy müştərisindən istifadə edin.
HTTPS tunel əlavə edir
Bu nümunə adi HTTP yönləndirməsini əhatə edir. HTTP proxy üzərindən HTTPS bağlantısı əvvəlcə CONNECT example.com:443 tələb edir, sonra qəbul edilmiş tunelin içində təyinat üçün TLS başladır. Nümunə URL-ni HTTPS-ə dəyişmək o mərhələləri əlavə etmir.
HTTPS və ya qarışıq iş yükü üçün tələb olunan tunel dəstəyi olan saxlanılan proxy agenti və ya göndəricisi istifadə edin. Uyğun Node versiyaları üçün bir seçim ProxyAgent ilə Undici fetch-dir. Adi HTTP mübadiləsinin özü idarə etmək və ya anlamaq istədiyiniz hal olanda bu kiçik əsas müştəri nümunəsini saxlayın.