27671


telnetで改行するにはどうすればいいですか?  
自分で立てたWebサーバに手動でリクエストを送りたいのですが、最初に`GET /index.html`と入力してreturn
keyを押すとリクエストが送信されてしまいます  
他にHTTP/1.1やHostなどのheaderも追加して送信するために改行したいのですがどうすればいいのでしょうか?

Mac: OS X 10.11


CC BY-SA 3.0
2016-07-16T12:56:42.390
27666
2016-07-16T15:17:24.047
2016-07-16T15:17:24.047
8000
5246
question
http network
telnetで改行する方法


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の日記 | スラド](http://srad.jp/%7ELivingdead/journal/492941/)
  * [RFC1945](https://www.rfc-editor.org/rfc/rfc1945#section-4.1)
  * [Request-Line - SuikaWiki](https://wiki.suikawiki.org/n/Request-Line)


CC BY-SA 3.0
2016-07-16T15:17:02.640
27671
2016-07-16T15:17:02.640
2021-10-07T07:34:52.683
-1
8000
27666
answer