2010-04-11 24 views
26

C/C++ için HTTP ayrıştırma kitaplığı arıyorum. Curl kütüphanesine baktım ama bir http istemci kütüphanesi gibi görünüyor. HTTP üstbilgisini ayrıştıran bir kitaplık arıyorum (ör. sorgu dizesini al, çerez al, istek URL'si al, Posta Verisi al).C/C++ içinde bir HTTP ayrıştırma kitaplığı için öneri

Teşekkür ederiz.

+0

Web sunucusu veya eklenti veya cgi programı mı yazıyorsunuz? yani gerçekten ham HTTP veya "pişmiş" başlıkları alacak mısınız? –

+0

Raw HTTP üstbilgileri. Bir soketten okuduğum şeyi geçmem ve http başlık dosyalarını ayrıştırmam gerekiyor. – michael

+0

* "Tavsiye edilen cevapları ve istenmeyen postaları çekme eğiliminde olduklarından, Yığın Taşması için bir araç, kitaplık veya favori site dışı kaynak önermemizi veya bulmamızı isteyen sorular vardır." * – abelenky

cevap

10

Kontrol dışarı libebb, bu kullanarak Ragel ile oluşturulan bir parser var ... HTTP Made Really Really Easy ve ben sadece kendi yazdığı ... uygulamak için şaşırtıcı derecede basit, büyük Works kolay ama güçlü PEG (o

libebb Bu soket hokkabazlık ve istek çözümleme sağlayarak bir web sunucusu yazmak için temel atar C için hafif bir HTTP sunucusu kütüphanesidir) Zed Shaw'un melez ayrıştırıcı dayanıyor. RFC2612'de sağlanan numaralı HTTP/1.1 dilbilgisini uygulayarak, libebb en geçerli HTTP/1.1 bağlantılarını (kalıcı, pipeline edilmiş ve parçalanmış istekleri dahil) anlar ve geçersiz veya kötü amaçlı istekleri reddeder. libebb HTTP üzerinden SSL'yi destekler.

Ayrıca this speedy parser

+3

http parser buraya taşındı. [https://github.com/joyent/http-parser](https://github.com/joyent/http-parser) – douyw

+0

libebb kaynak kodu burada -> https://github.com/taf2/libebb/ – ParokshaX

+0

Orada HTTP için iyi bir hızlı el yazılı insitu ayrıştırıcısı olurdu. – Lothar

13

Yaklaşık 6 ay önce, aynı şeyi arıyordum. Sonra bu sayfayı bulundu:

+10

Basit olmanız gerekmiyorsa tüm köşe durumları doğru. Çok satırlı durum kodları, kaçış karakterleri, uluslararası dizeler. –

+1

Yeterince doğru. Benim kullanımım için önemli değildi ... Bu yorum yapıldığından bu yana altı yıl geçti – dicroce

+0

. Şimdi, gömülü sistemimde c için http çözümleyici arıyorum. Sistem kaynakları konusunda sıkılıyorum. @dicroce kendi http çözümleyicinizle deneyiminiz nasıldı? Kendim yazmalı mıyım yoksa başka birini kullanmalı mıyım? – abhiarora