web-dev-qa-db-ja.com

すべてをTelnetで実行できますか?

TelnetでできるWebブラウジングや電子メールの閲覧など、Webで行うすべてのことは本当ですか?

7
tony_sid

はい、圧縮のメリットは失われますが、チャンク化されたGET応答またはSMTPでBase64でエンコードされたログイン/パスワードを操作するのは面倒なので、テスト目的以外で実際に使用することはお勧めしません。Perlまたはpython Web上で自動的に何かをしたい場合。

また、特定のブラウザからのリクエストと見分けがつかないリクエストを行いたい場合(Bad Behaviorなどのシステムで保護されているサイトで作業しようとしている場合、これを行うのは悲しい現実です)、ミニを作成することを検討してください。リクエストを逐語的に出力するサーバー(そのような例が飛び交っていますが、おそらく若干の変更が必要になります)。そうすれば、それをテンプレートとして使用して、そのようなサイトに簡単なリクエストを行うことができます。

たとえば、試してみてください

telnet google.com 80

初期化が完了したら、次のように入力します

GET / HTTP/1.0

eNTERを2回押します(HTTPプロトコルで必要な場合)。ブラウザがWWW.google.comにリダイレクトするために通常使用する302応答を受け取ります。

8

Telnetは(ほぼ)raw TCP接続に使用でき、文字ベースのプロトコルを使用できますが、 いくつかの違い

したがって、Telnetクライアントアプリケーションを使用して、インタラクティブなraw TCPセッションを確立することもできます。IACを使用しないセッション(\ 377文字、または10進数で255 )は機能的に同じです。ただし、ベアキャリッジリターン文字(CR、ASCII 13))の要件など、他のネットワーク仮想端末(NVT)ルールがあるため、これは当てはまりません。 telnetプロトコルをraw TCPセッションから区別するNULL(ASCII 0)文字が続きます。

それ以外の場合は、HTTP、FTP、SMTP、IRC)などの文字ベースのアプリケーション層プロトコルを使用できます。 Telnetを使用します。圧縮データを手動で読み書きするのは非常に難しいため、HTTP/1.1の圧縮なしのHTTPに制限されます。完全にバイナリのプロトコルの場合、ほとんど運が悪いです。

7
Daniel Beck

技術的にはそうです、あなたはそれを行うことができます。しかし、実際的に言えば、答えはノーです。

たとえば、私はを使用してWebページを取得できます

telnet www.page.com 80

しかし、私はそれからhtmlテキストを取得しますが、css、画像、その他のリソースは取得しません。

次に、htmlファイルを使用すると、連続したtelnet呼び出しで他のすべてのファイルを取得できます。 cssを取得するのは「簡単」です。ファイル、js、その他の「インクルード」ファイルを取得するのも同じです。しかし、バイナリは、ダウンロードしてから処理する必要があるため、それほど簡単ではありません。一部のリソースには特定のCookieと参照が必要であるとは見なされません。

そして、ウェブサイトは、プロトコルの仕様、ほとんどパッチが適用されていないプロトコル、およびいくつかの例外を除いて「詳細」であるz-compressionおよび他の多くの「詳細」を強制している可能性があります。

可能ですが、既存のサービス/プロトコルを最初から構築することは同じです。したがって、「0と1を「突く」だけでWindowsを構築できる」と言うことも同じです。 <-可能ですが、それを行うには多くのばかげた時間がかかります。

完全にロードできないサイトの例は、gmail.comです。これは、追加の複雑さ:javascriptも含まれているためです(Lynxはネイティブではなく、実際のエクスペリエンスでもないため、除外されます)。

とにかく、Webと電子メールの外部には、プレーンなtelnetを使用してアクセスできないプロトコルが存在します。これは、2つの別々のtelnet呼び出しを使用せずに模倣できない、ある種のタイムリーなハンドシェイク(2秒以上)が必要だったためです。ある種の自動化を使用します。つまり、適切なtelnetクライアントではなく、それを超えるクライアントについて話します。

1
magallanes