ក្នុងសំណើ HTTP ធម្មតាឆ្លងកាត់ប្រូកស៊ីឆ្ពោះទៅមុខ Node តភ្ជាប់ទៅប្រូកស៊ី ហើយផ្ញើ URL គោលដៅក្នុងបន្ទាត់ស្នើសុំ។ តម្លៃបីពិពណ៌នាសំណើតែមួយនោះ៖

តម្លៃឧទាហរណ៍
ចំណុចចុងក្រោយនៃការតភ្ជាប់ TCPproxy.example:8080
គោលដៅសំណើhttp://example.com/news?q=proxy
បឋមកថា Hostexample.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 សាធារណៈ ហើយពិនិត្យការឆ្លើយតបរបស់វា។ ឧទាហរណ៍បញ្ចេញការឆ្លើយតបបន្ទាប់ពីបោះពុម្ពស្ថានភាព; កម្មវិធីអាចប្រើតួជំនួសវិញ។ សំណួរនៅតែជាផ្នែកនៃគោលដៅសំណើ។

ហេតុអ្វី URL ពេញលេញនៅទីនោះ

ម៉ាស៊ីនមេដើមកំណើតជាធម្មតាទទួលគោលដៅដូចជា /news?q=proxy។ ប្រូកស៊ីឆ្ពោះទៅមុខក៏ត្រូវការគោលដៅដែរ ដូច្នេះ HTTP/1.1 កំណត់គោលដៅជាទម្រង់ដាច់ខាត៖

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

ក្រោមច្បាប់ HTTP/1.1 ប្រូកស៊ីដែលទទួលទម្រង់ដាច់ខាតប្រើអាជ្ញាធររបស់ URI ពេលបញ្ជូនបន្ត ហើយជំនួសវាល Host ដែលទទួលបានមិនស៊ីគ្នា។ ការផ្ញើបឋមកថា Host គោលដៅដែលស៊ីគ្នានៅតែធ្វើឱ្យសំណើចេញមិនមានភាពមិនច្បាស់។ ឈ្មោះម៉ាស៊ីននៃការតភ្ជាប់ Node គឺជាអ្នកកណ្តាល ដូច្នេះកំណត់បឋមកថាដោយចេតនា ជំនួសឱ្យការពឹងផ្អែកលើអាសយដ្ឋានតភ្ជាប់នោះ។

ប្រសិនបើត្រូវការផ្ទៀងផ្ទាត់ ព័ត៌មានសម្គាល់របស់ប្រូកស៊ីជារបស់ជំហានរបស់វា។ ជម្រើសសំណើ auth របស់ Node បង្កើតបឋមកថា Authorization សម្រាប់ធនធាន; វាមិនមែនជាជម្រើសចូលប្រូកស៊ីទូទៅទេ។ ប្រើគ្រោងការណ៍ដែលប្រូកស៊ីត្រូវការ និងឧបករណ៍ភ្ញៀវប្រូកស៊ីសមស្រប នៅពេលការផ្លាស់ប្តូរស្មុគស្មាញជាងនេះ។

HTTPS បន្ថែមរូងក្រោមដី

ឧទាហរណ៍នេះគ្របដណ្តប់ការបញ្ជូន HTTP ធម្មតា។ ការតភ្ជាប់ HTTPS ឆ្លងកាត់ប្រូកស៊ី HTTP ធម្មតាស្នើ CONNECT example.com:443 ជាមុន បន្ទាប់មកចាប់ផ្តើម TLS ទៅគោលដៅក្នុងរូងដែលទទួលយក។ ការប្តូរ URL ឧទាហរណ៍ទៅ HTTPS មិនបន្ថែមដំណាក់កាលទាំងនោះទេ។

សម្រាប់ HTTPS ឬបន្ទុកការងារចម្រុះ ប្រើភ្នាក់ងារ ឬអ្នកបញ្ជូនប្រូកស៊ីដែលថែទាំជាមួយការគាំទ្ររូងចាំបាច់។ សម្រាប់កំណែ Node ដែលត្រូវគ្នា ជម្រើសមួយគឺ fetch របស់ Undici ជាមួយ ProxyAgent។ រក្សាឧទាហរណ៍ឧបករណ៍ភ្ញៀវស្នូលតូចនេះសម្រាប់ករណីដែលការផ្លាស់ប្តូរ HTTP ធម្មតាខ្លួនឯងជាអ្វីដែលអ្នកត្រូវគ្រប់គ្រង ឬយល់។

អត្ថបទពាក់ព័ន្ធ