GET、POST、HEADリクエストを処理する小さなc++Webサーバーを作成しようとしています。私の問題は、ヘッダーやメッセージ本文などを解析する方法がわからないことです。ソケットでリッスンしているので、ブラウザーに正常に書き込むこともできますが、C++でこれをどのように行うべきか興味があります。
Afaikの標準のGET/POSTリクエストは、次のようになります。
GET /index HTTP/1.1
Host: 192.168.0.199:80
Connection: keep-alive
Accept: */*
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
this is the message body
すべての行は「\r\n」で終わりました。
'\ n'でリクエストを分割し、それらをトリミングする必要がありますか(その場合はどのように)?また、投稿データのファイルを処理する方法は?
私が達成したい主なことは、ヘッダーkey => valueペアを含むベクトル、requestメソッドを含む文字列、postデータ(PHPが存在する場合など)、およびクエリ文字列(/ indexなど)を文字列として取得することです。または'/'で分割されたベクトル。
ありがとう!