質問: telnetで改行するにはどうすればいいですか? 自分で立てたWebサーバに手動でリクエストを送りたいのですが、最初に`GET /index.html`と入力してreturn keyを押すとリクエストが送信されてしまいます 他にHTTP/1.1やHostなどのheaderも追加して送信するために改行したいのですがどうすればいいのでしょうか? Mac: OS X 10.11
回答: telnetとは関係なく、HTTP/1.0以降のリクエスト行として正しくないのが問題です。 HTTP/1.0 以降のリクエスト行には Method、Request-URI の他に HTTP-Version も**必要**です。例えば `GET /index.html HTTP/1.0` といった形式になります。 今回の場合バージョンを省略したために HTTP/0.9、もしくはRFC1945で言うところのSimple-Requestとして扱われたものと思います。HTTP/0.9のリクエストはリクエスト行だけで構成され、ヘッダ群はありませんから、一行目を送っただけで直ちにレスポンスが返ってきたのでしょう。 Windowsのtelnetコマンドで試したところ、 `GET /index.html` ではご指摘のような挙動になりましたが、 `GET /index.html HTTP/1.0` とすることでヘッダ行も送信することができました。 参考 * HTTP/0.9にハマル | Livingdeadの日記 | スラド * RFC1945 * Request-Line - SuikaWiki