اگر جست‌وجوی لازم هنوز از WHOIS سنتی استفاده می‌کند، پروکسی HTTP می‌تواند آن تبادل TCP را حمل کند، به شرطی که سیاستش CONNECT به سرویس WHOIS را مجاز بداند. مشتری باید دست‌دادن پروکسی را پیش از فرستادن متن جست‌وجو کامل کند. برای یک آزمون عمومی مجاز WHOIS بدون اعتبارنامه پروکسی پیکربندی‌شده، فهرست پروکسی HTTP واسطه‌های نامزد را عرضه می‌کند؛ جداگانه تأیید کنید که یکی میزبان سرویس WHOIS و درگاه 43 را مجاز می‌داند.

برای سرویس فرضی به نام whois.example، با این درخواست HTTP آغاز کنید:

CONNECT whois.example:43 HTTP/1.1
Host: whois.example:43

پایان خطوط HTTP را به‌صورت CRLF بنویسید. پاسخ کامل پروکسی، شامل خط سرصفحه خالی پایانی آن را بخوانید و وضعیت عددی موفقیت را بررسی کنید. دریافت بخشی از خط وضعیت برای آغاز پروتکل بعدی کافی نیست.

سپس متن WHOIS را بفرستید

پس از باز شدن تونل، پرس‌وجویی را بفرستید که آن سرور WHOIS انتظار دارد. یک پرس‌وجوی نمونه ساده چنین است:

example.com<CRLF>

این نشانگر بایت‌های بازگشت ارابه و تغذیه خط را نمایندگی می‌کند. بخشی از نام دامنه نیست. درون این تبادل WHOIS هیچ خط HTTP GET و هیچ وضعیت پاسخ HTTP وجود ندارد.

متن را بخوانید تا سرور WHOIS اتصال را ببندد. یک پاسخ می‌تواند خطوط بسیاری داشته باشد؛ نخستین خط جدید به معنای کامل بودن آن نیست. مهلت‌های اتصال و خواندن را در پیاده‌سازی محدود نگه دارید.

این توالی همچنین دو مرز متمایز به تجزیه‌گر می‌دهد. نخست یک بلوک سرصفحه HTTP می‌آید. پس از آن پاسخ WHOIS می‌آید که پایانش با بسته شدن اتصال علامت داده می‌شود. هر بایتی را که فراتر از یک مرز تجزیه‌شده در بافر مانده حفظ کنید، نه اینکه یک خواندن کامل شبکه را دور بریزید.

رد شدن توسط پروکسی یعنی تونل هرگز باز نشد، بنابراین فرستادن دامنه پس از آن نمی‌تواند نتیجه WHOIS بدهد. اگر پاسخ سرور به سرویس WHOIS دیگری اشاره کند، هر پرس‌وجوی بعدی به اتصال مجاز خودش با آن سرویس نیاز دارد.

مقالات مرتبط