一番簡単なHTTPリクエスト
現在使われているHTTPのバージョンは、1.0と1.1。1.0も使われているっていっても、大半は1.1だろう。それぞれのバージョンで、リクエストやレスポンスのヘッダーや、実装すべき機能の差分がある。当然だけれども、後に決められた1.1の方が複雑で、HTTP 1.0 の方がシンプルだ。
その HTTP 1.0 でも、最も単純なのが GET メソッド。これは、実際の命令とHOSTヘッダさえあればOK。具体的には以下のようになる。
GET / HTTP/1.0\r\n HOST: 127.0.0.1\r\n \r\n
表記をより厳密にするため、\r\n と書いたが実際にはこれは制御文字なので見えない。要は、
- 各ヘッダごとに改行が必要
- リクエストの最後は空行が必要
とだけ覚えておけばいい感じ。
なお、HOST の後のIPアドレスは、アクセス先ホストになっている。
そして、実行例だけれども、
$ telnet XXX 80
とやった後に、上記のようなテキストをコピペするとHTMLが表示される。
何らかの言語でHTTPクライアントを書くときも一緒で、上記のようなテキストを定数的に用意しておき、それを write することになる。
C言語の場合は、
#define HTTPREQ "GET /index.html HTTP/1.0\r\nHOST: localhost\r\n\r\n" ... write(fd, HTTPREQ, strlen(HTTPREQ)); ...
というようにしてやればいい。具体例は後日・・・