استفاده از Telnet برای ارتباط دستی با بعضی سرویسها (مانند HTTP)

احتمالا دیده باشید یا شنیده باشید یا حتی خودتون تاحالا این استفاده رو از Telnet کرده باشید که بوسیلهء اون به یک سرویس مثل یک وب سرور HTTP وصل شده و دستوراتی رو ارسال/تست کرده باشید و پاسخ سرور رو گرفته باشید.

بنده شخصا تاحالا فکر میکردم که استفاده از Telnet در اینطور کاربردها هیچ مشکلی نداره و معادل یک ارتباط TCP مستقیم است.
اما دیروز پریروز مقالهء Telnet ویکیپدیا رو خوندم که در این مورد اطلاعات خوبی به من داد و برام روشن کرد که نه تنها Telnet برای این کارها طراحی نشده بلکه استفاده ازش در اینطور کاربردها لزوما بدون محدودیت و مشکل نیست.
و اما اینکه محدودیت هاش چیه، بذارید در بقیهء این پست، ترجمهء متن ویکیپدیا در این مورد رو بذارم:

تمام بایت های دیتا بجز مقدار 0377 (همون 255 در مبنای 10) بر روی لایه انتقال TCP بصورت دست نخورده ارسال میشوند. بنابراین، یک برنامهء کلاینت Telnet میتواند همچنین برای ایجاد یک نشست TCP خام تعاملی استفاده شود، و این تصور متداول است که چنان نشست ای که از کاراکتر 0377 استفاده نمیکند از نظر کارکرد یکسان است. اما این واقعیت ندارد، چراکه قوانین دیگری، همچون الزام به اینکه یک کاراکتر carriage return (کد اسکی 13) منفرد با یک کاراکتر NULL (کد اسکی 0) دنبال شود وجود دارند که پروتکل telnet را از نشست های TCP خام متمایز میکنند.
تفاوت دیگر telnet با یک نشست خام TCP آن است که telnet بطور پیشفرض برای ارسال کاراکترهای 8 بیتی آماده نیست. حالت 8 بیت میتواند مورد مذاکره قرار گرفته و فعال شود، اما بایت هایی که مقدار بالاترین بیت آنها set شده است ممکن است تا زمانیکه این حالت فعال شود خراب شوند، و ضمنا واضح است که این حالت در کانکشن های غیر telnet درخواست نخواهد شد.
بسیاری از سیستمها اکنون دارای کلاینت های واقعی نشست TCP خام هستند، همچون netcat یا socat بر روی UNIX و PuTTY بر روی ویندوز، که همچنین میتوانند برای حرف زدن دستی با دیگر سرویسها بدون استفاده از نرم افزار کلاینت اختصاصی استفاده شوند. اما با این وجود telnet هنوز بعضی اوقات در عیب یابی سرویسهای شبکه همچون SMTP, IRC, HTTP, FTP یا POP3 برای ارسال فرامین به یک سرور و بررسی پاسخ ها استفاده میشود، اما از همهء این پروتکل ها فقط FTP واقعا از فرمت دیتای telnet استفاده میکند.

منبع: http://en.wikipedia.org/wiki/Telnet

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>