GET、POST、HEADリクエストを処理する小さなC++ Webサーバーを作成しようとしています。私の問題は、ヘッダー、メッセージ本文などを解析する方法がわからないことです。ソケットをリッスンしていても、ブラウザに十分な情報を書き込むこともできますが、C++でどうすればよいでしょうか。C++でhttpリクエストを解析する方法
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' をして終了:標準のGET/POSTリクエスト私の知る限り
は、次のようになります。
'\ n'でリクエストを分割してトリミングする必要がありますか? 投稿データのファイルを処理する方法もありますか?
私が達成したい主なことは、ヘッダーキー=>値のペア、リクエストメソッドを持つ文字列、PHPのようなポストデータ(存在する場合)、およびクエリ文字列(/ index例)を '/'で分割した文字列またはベクトルとして返します。
ありがとうございます!
C++を使用してWebを扱うのは大変です。しかし、あなたが本当にそれを遠くに行きたいなら、あなたはこれよりも弦の操作が難しい方がいいでしょう。 – Shoe
HTTPメッセージを解析する場合は、尋ねる必要があるのは... * [RFC 2616](http://www.w3.org/Protocols/rfc2616/rfc2616.html) * – rdlowrey
あなた自身のサーバーをエクササイズとして書くか、C++内の** Webサーバーライブラリを**使用しますか?その場合、そこには非常に良い解決策があります –