Node.js CONNECT হেণ্ডলাৰে head বাফাৰ সংৰক্ষণ কৰিব লাগে
HTTP-ৰ পৰা টানেললৈ সংযোগ স্থানত Node-ৰ CONNECT ছকেট আৰু head বাফাৰ পৰিচালনা কৰক, হেডাৰৰ পিছত ইতিমধ্যে পঢ়া বাইটবোৰ সংৰক্ষণ কৰি।
Node HTTP ছাৰ্ভাৰে সাধাৰণ প্ৰক্সি অনুৰোধক ইয়াৰ অনুৰোধ কলবেকৰ জৰিয়তে পৰিচালনা কৰে। CONNECT-এ আন পথ লয়: ছাৰ্ভাৰে অনুৰোধ, গ্ৰাহক ছকেট আৰু head বাফাৰৰ সৈতে connect নিৰ্গত কৰে।
সেই ঘটনাটো HTTP বিশ্লেষণ আৰু টানেলৰ মাজৰ হস্তান্তৰ। টানেল কৰা ট্ৰেফিকৰ বাবে ব্যৱহাৰ কৰি ৰাখিবলৈ কোনো সাধাৰণ ServerResponse বস্তু নাই।
| যুক্তি | ই কি বহন কৰে |
|---|---|
req | CONNECT অনুৰোধ, ইয়াৰ গন্তব্য কৰ্তৃত্ব আৰু হেডাৰকে ধৰি |
clientSocket | গ্ৰাহকলৈ ঘূৰি যোৱা সংযোগ |
head | Node-এ HTTP হেডাৰৰ পিছত ইতিমধ্যে পঢ়া টানেল ডেটা, হয়তো খালী |
বাইট প্ৰেৰণ কৰাৰ আগতে HTTP সিদ্ধান্ত সম্পূৰ্ণ কৰক
অনুৰোধ কৰা হোষ্ট আৰু প'ৰ্ট বৈধ কৰক, প্ৰক্সিৰ প্ৰৱেশ আৰু প্ৰমাণীকৰণ নীতি প্ৰয়োগ কৰক, আৰু আপষ্ট্ৰিম সংযোগ স্থাপন কৰক। CONNECT-এ service.example:443-ৰ দৰে কৰ্তৃত্ব চিনাক্ত কৰে; সেই ৰূপ IPv6 কৰ্তৃত্ব মনত ৰাখি বিশ্লেষণ কৰক, প্ৰতিটো ক'লনত অন্ধভাৱে বিভক্ত কৰাৰ পৰিৱৰ্তে।
টানেল গ্ৰহণ কৰিলে, সফল HTTP প্ৰতিক্ৰিয়া তাৰ সমাপ্তিৰ খালী শাৰীৰ সৈতে পঠিয়াওক। তাৰ পিছত গ্ৰাহক ছকেটৰ পৰৱৰ্তী বাইটৰ সৈতে আগবাঢ়াৰ আগতে যিকোনো head বাইট আপষ্ট্ৰিমলৈ প্ৰেৰণ কৰক। নতুন ডেটা শ্ৰোতা সংযোগ কৰি ইতিমধ্যে হেণ্ডলাৰলৈ পৃথকে প্ৰদান কৰা বাফাৰ পুনৰুদ্ধাৰ কৰিব নোৱাৰি।
Node-ৰ চৰকাৰী টানেলিং উদাহৰণে দুয়োটা ষ্ট্ৰিম দিশ সংযোগ কৰাৰ আগতে serverSocket.write(head)-ৰে সেই হস্তান্তৰ সম্পন্ন কৰে। ইয়াৰ সৰু উদাহৰণে পৰিৱৰ্তনটো দেখুৱায়; এটা স্থাপিত প্ৰক্সিত সীমিত সংযোগ প্ৰচেষ্টা, প্ৰৱেশ নিয়ন্ত্ৰণ আৰু জীৱনচক্ৰ পৰিচালনাও প্ৰয়োজন।
সফলতাৰ পিছত, বাইটবোৰ সেৱা প্ৰ'ট'কলৰ অন্তৰ্গত
সফল CONNECT প্ৰতিক্ৰিয়াই সংযোগটো এটা বাইট ষ্ট্ৰিমলৈ সলনি কৰে। লক্ষ্য HTTPS ছাইট হ'লে ইয়াৰ TLS বিনিময় সেই ষ্ট্ৰিমৰ ভিতৰত চলাচল কৰে। কেৱল টানেল কৰিলে প্ৰক্সিয়ে প্ৰতিস্থাপন ৱেবছাইট প্ৰমাণপত্ৰ জাৰী কৰিব নালাগে।
CONNECT গ্ৰহণ কৰাৰ আগতে HTTP ত্ৰুটিয়ে কিয় অস্বীকাৰ কৰা হ'ল ব্যাখ্যা কৰিব পাৰে। গ্ৰহণৰ পিছত ষ্ট্ৰিমত HTTP 500 লিখিলে টানেল প্ৰ'ট'কলত বাইট ইনজেক্ট হ'ব। তাৰ পৰিৱৰ্তে পিছৰ বিফলতাত উপযুক্ত সংযোগসমূহ সমাপ্ত বা ধ্বংস কৰক।
দুয়োটা দিশ পিছৰ চাপ সচেতন ষ্ট্ৰিম পৰিচালনা-ৰ সৈতে সংযোগ কৰক, আৰু end, error আৰু close ঘটনাই সমকক্ষক কেনেকৈ সমাপ্ত কৰে সিদ্ধান্ত লওক। প্ৰাৰম্ভিক head বাফাৰ সেই একেটা মালিকীস্বত্ব মডেলৰ অংশ হিচাপে সংৰক্ষণ কৰক; ই এপ্লিকেচন ডেটা, বাদ দিবলগীয়া অতিৰিক্ত HTTP হেডাৰ নহয়।