2014-12-14 18 views
5

Verilen GET isteklerinin sayısını ve belirli istemci-sunucu uygulamalarındaki ortalama algılanan gecikmeyi azaltmak için HTTP/2'nin itme özelliklerini kullanmanın yollarını araştırıyorum. Mevcut müşteri, GET isteklerini yayınlamak için kıvrım kullanımına büyük ölçüde bağlıdır ve mevcut uygulamayı yeniden kullanabilmem gerekir. Son zamanlardaki curl sürümleri, alttaki nghttp2 modülüne dayanarak HTTP/2 için destek sağlar. Varolan nghttp2 sunucusunu kullanarak:HTTP/2'nin itme özelliklerini curl ile nasıl kullanılır?

nghttpd -d /var/www/html/ 3000 local.key local.crt 
hem nghttp ve bukle örnek metin dosyasının içeriğini almak için kullanılabilir

:

nghttp https://localhost:3000/text.txt 
This is some sample text. 

curl https://localhost:3000/text.txt -k --http2 
This is some sample text. 

başka bir metin dosyası boyunca itildiği yerde, ancak özelliğini iterek nghttp2 en kullanma:

:
nghttpd -d /var/www/html/ -p/text.txt=/text2.txt 3000 local.key local.crt 

bukle itilmiş kaynakla başa değil yetenekli görünüyor

Gerçekten de, sunucu tarafında, iki sıfırlar iki açılan akışları için alınan:

[id=1] [331.593] recv RST_STREAM frame <length=4, flags=0x00, stream_id=1> 
     (error_code=PROTOCOL_ERROR(0x01)) 
[id=1] [331.594] recv RST_STREAM frame <length=4, flags=0x00, stream_id=2> 
     (error_code=PROTOCOL_ERROR(0x01)) 
[id=1] [331.594] closed 

HTTP/2 itme özelliklerine sahip kıvrılmış kullanmak için bir yolu var mı?

cevap

4

curl (komut satırı aracı) HTTP/2 (henüz) itmeyi desteklemiyor.

Yalnızca libcurl ile HTTP/2'yi kullanırken değil, komut satırı aracını kullanarak bunu kullanabilirsiniz.