Nếu một tra cứu bắt buộc vẫn dùng WHOIS truyền thống, proxy HTTP có thể mang trao đổi TCP đó khi chính sách của nó cho phép CONNECT tới dịch vụ WHOIS. Máy khách phải hoàn tất bắt tay proxy trước khi gửi văn bản tra cứu. Với một thử nghiệm WHOIS công khai được phép mà không cấu hình thông tin đăng nhập proxy, danh sách proxy HTTP cung cấp các trung gian ứng viên; hãy xác nhận riêng rằng một trong số đó cho phép máy chủ của dịch vụ WHOIS và cổng 43.

Với một dịch vụ giả định tên là whois.example, hãy bắt đầu bằng yêu cầu HTTP này:

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

Ghi phần cuối dòng HTTP dưới dạng CRLF. Đọc toàn bộ phản hồi của proxy, kể cả dòng tiêu đề trống kết thúc nó, và kiểm tra mã trạng thái thành công dạng số. Chỉ nhận được một phần dòng trạng thái là chưa đủ để bắt đầu giao thức tiếp theo.

Sau đó gửi văn bản WHOIS

Sau khi đường hầm mở, hãy gửi truy vấn mà máy chủ WHOIS đó mong đợi. Một truy vấn minh họa đơn giản là:

example.com<CRLF>

Dấu này đại diện cho các byte xuống dòng và về đầu dòng. Nó không phải là một phần của tên miền. Không có dòng HTTP GET và không có trạng thái phản hồi HTTP bên trong trao đổi WHOIS này.

Đọc văn bản cho đến khi máy chủ WHOIS đóng kết nối. Một phản hồi có thể chứa nhiều dòng; dòng mới đầu tiên không có nghĩa là đã đầy đủ. Hãy giữ thời gian chờ kết nối và đọc ở mức có giới hạn trong phần triển khai.

Trình tự này cũng cho bộ phân tích hai ranh giới khác nhau. Đầu tiên là khối tiêu đề HTTP. Sau đó là phản hồi WHOIS, mà việc hoàn tất được báo hiệu bằng việc đóng kết nối. Hãy giữ lại mọi byte đã được đệm vượt quá một ranh giới đã phân tích thay vì bỏ toàn bộ lần đọc mạng.

Việc proxy từ chối nghĩa là đường hầm chưa bao giờ mở, nên gửi tên miền sau đó không thể tạo ra kết quả WHOIS. Nếu phản hồi của máy chủ trỏ tới một dịch vụ WHOIS khác, mọi truy vấn tiếp theo cần kết nối được phép riêng của nó tới dịch vụ đó.

Bài viết liên quan