2010-04-11 37 views
26

我正在爲C/C++尋找HTTP解析庫。 我看了curl庫,但它似乎是一個http客戶端庫。 我正在尋找解析HTTP標頭的庫(例如,獲取查詢字符串,獲取cookie,獲取請求url,獲取發佈數據的方式 )?C/C++中HTTP解析庫的建議

謝謝。

+0

你正在編寫一個網絡服務器或插件或CGI程序?即你真的會收到原始的HTTP或'煮熟'的頭文件嗎? – 2010-04-11 15:27:40

+0

原始HTTP標頭。我需要通過從套接字讀取的內容並解析http頭文件。 – michael 2010-04-11 15:38:52

+0

*「有問題要求我們推薦或找到工具,圖書館或最喜歡的非現場資源,因爲它們傾向於吸引自以爲是的答案和垃圾郵件,因此不適合堆棧溢出。」* – abelenky 2013-10-23 16:29:55

回答

10

退房libebb,它與Ragel產生parser使用簡單易用且功能強大的PEG(它基於的Zed Shaw的雜種解析器)

libebb是C.一個輕量級的HTTP服務器庫它奠定了基礎 通過提供插座雜耍 和請求解析編寫一個Web服務器。通過實現RFC2612中提供的 的HTTP/1.1語法,libebb理解大多數最有效的HTTP/1.1連接 (包括持久的,流水線的和分塊的請求)並拒絕無效或惡意請求。 libebb支持SSL over HTTP。

還要檢查this speedy parser

+3

http解析器移到這裏。 [https://github.com/joyent/http-parser](https://github.com/joyent/http-parser) – douyw 2012-11-09 01:57:26

+0

libebb源代碼在這裏 - > https://github.com/taf2/libebb/ – ParokshaX 2014-03-12 07:03:49

+0

希望那裏會有一個很好的快速手寫HTTP原位解析器。 – Lothar 2015-12-02 14:18:44

13

大約6個月前,我一直在尋找同樣的東西。然後我找到了這個網頁: HTTP Made Really Really Easy ,我只是寫我自己......偉大的作品,令人驚訝的簡單實現...

+10

簡單,如果您不關心獲取所有的角落案件的權利。多行狀態代碼,轉義字符,國際字符串。 – 2010-04-11 17:10:50

+1

夠正確。對我的使用沒有任何影響... – dicroce 2010-04-12 16:34:28

+0

這個評論發佈已經六年了。現在,我正在爲我的嵌入式系統尋找c語言中的http解析器。我對系統資源很緊張。 @dicroce你的自己的HTTP解析器的經驗如何。我應該寫我自己的還是使用別人的。 – abhiarora 2016-06-02 04:21:26