当前位置:  开发笔记 > 前端 > 正文

解析HTTP标头

如何解决《解析HTTP标头》经验,为你挑选了1个好方法。

我有兴趣在C中构建一个小型,高效的Web服务器,并且在从HTTP Header解析POST方法时遇到了一些麻烦.有人会对如何处理从"发布"数据中检索名称/值对有任何建议吗?

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

我认为没有切实可行的方法来检索整体的底线并确保它每次都有效.我不喜欢硬编码.



1> Brian R. Bon..:

您可以通过搜索换行换行符或更具体地\ r \n\r \n来检索名称/值对(在此之后,将启动消息正文).

然后你可以简单地用&拆分列表,然后在= for name/value对之间拆分每个返回的字符串.

请参阅HTTP 1.1 RFC.


@rofly:不要计算两个和两个,只需阅读标准(RFC 2616).它在4.1节中.
请注意,存在使用"有趣"标题末尾的不合规客户端,例如'\n \n'或'\n\r \n'.
推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有