Cで小型で効率的なWebサーバーを構築することに興味があり、HTTPヘッダーからPOSTメソッドを解析する際に問題がありました。誰かが "投稿された"データから名前と値のペアを取り出すのをどのように処理するかについてアドバイスを持っていますか?HTTPヘッダーの解析
POST /test HTTP/1.1
Host: test-domain.com:7017
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://test-domain.com:7017/index.html
Cookie: __utma=43166241.217413299.1220726314.1221171690.1221200181.16; __utmz=43166241.1220726314.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
field1=asfd&field2=a3f3f3
// ^-this
私は一番下の行全体を取得し、毎回確実に動作するように具体的な方法はありません。私は何でもハードコーディングのファンではありません。
ああ、ありがとう。私は、名前と値のペアの文字列の直前に余分なスペースがあることに気づいたが、2と2を一緒に置かなかった。 –
@rofly:2つと2つを計算しないでください。ちょうど標準(RFC 2616)を読んでください。 4.1節にあります。 – bortzmeyer
「\ n \ n」や「\ n \ r \ n」などのヘッダーの「面白い」部分を使用するクライアントに準拠していないクライアントがあることにご注意ください。 – Wade