Parçalanmış kodlama yanıtlarını destekleyen, iyi desteklenen çok aşamalı bir Python HTTP sunucusu arıyorum. (I.e "Transfer-Kodlama: yanıtlarda" parçalanmış "). Bu amaçla başlamak için en iyi HTTP sunucu tabanı nedir?Parçalanmış kodlamayı destekleyen Python HTTP sunucusu?
cevap
Bükülmüş destekler chunked transfer encoding (API link) (ayrıca bkz. HTTPChannel için API belgesi). Twisted kullanarak bir dizi üretim sınıfı proje vardır (örneğin, Apple Mac OS X Server'da iCalendar sunucusu için kullanır), bu yüzden oldukça iyi desteklenmiş ve çok sağlamdır.
WSGI uyumlu sunucuların bunu desteklemesi gerektiğinden eminim. Esasen, WSGI uygulamaları, web sunucusunun döndürdüğü yinelenen parçalar döndürür. Bununla ilk elden deneyimim yok, ama işte list of compliant servers.
Ben rulo oldukça kolay olacağını düşünmek gerekir kendi olsa, WSGI sunucuları, arayan CGIHTTPServer Python en yerleşik kullanarak ne karşılamak yoksa. Zaten çok iş parçacıklı, bu yüzden yanıtları öbeklemek size kalmış.
Yuvarlanmış destekler yığınlı aktarım ve bunu saydam şekilde yapar. Örneğin, istek işleyiciniz bir yanıt uzunluğu belirtmezse, twisted otomatik olarak yığın aktarımına geçecek ve Request.write öğesine çağrı başına bir parça üretecektir.
#!/usr/bin/env python
import logging
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
define("port", default=8080, help="run on the given port", type=int)
@tornado.web.stream_request_body
class MainHandler(tornado.web.RequestHandler):
def post(self):
print()
def data_received(self, chunk):
self.write(chunk)
logging.info(chunk)
def main():
tornado.options.parse_command_line()
application = tornado.web.Application([
(r"/", MainHandler),
])
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(options.port)
tornado.ioloop.IOLoop.current().start()
if __name__ == "__main__":
main()
- 1. localhost'ta Yavaş Python HTTP sunucusu
- 2. Python FTP Sunucusu: Nasıl destekleyen yapmak güvenli ve
- 3. Özel basit Python HTTP sunucusu Python ile yazılmış bulmuştu
- 4. PHP HTTP Proxy Sunucusu
- 5. Nodejs HTTP Sunucusu ile Özel HTTP yöntemi
- 6. node.js - olası http sunucusu bellek
- 7. http canlı akış sunucusu kurulumu
- 8. Kodlamayı kesme
- 9. Kodlamayı algıla
- 10. MySQL sunucusu gitti - Python
- 11. Python için XMPP sunucusu
- 12. SL4A istemcisi Python sunucusu
- 13. MPEG-DASH ve parçalanmış mp4
- 14. takeUntil? Parçalanmış giriş işleme. Nasıl?
- 15. DOM Neden Kodlamayı Değiştiriyor?
- 16. Python: BaseHTTPRequestHandler HTTP POST işleyicisinden anahtar/değer çiftlerini nasıl alabilirim? En basit HTTP sunucusu verilen
- 17. Python ile Bluetooth sunucusu 3.3
- 18. Web sunucusu tarafından desteklenen HTTP sürümünü belirleyin
- 19. node.js http sunucusu, istemcilerin bağlantıyı kestiğini algıladığında
- 20. Polimer, http sunucusu üzerinde hiçbir şey göstermiyor
- 21. VisualSVN Sunucusu 3.2 - Beklenmeyen HTTP Durum 405
- 22. Golang: http sunucusu açık goroutines'i bırakıyor
- 23. Unix'te HTTP Live Streaming sunucusu nasıl uygulanır?
- 24. Node.js HTTP Sunucusu için izleme komutu
- 25. Web sunucusu nasıl HTTP POST'u kullanır
- 26. Laravel 5.1.1 LTS: Tamamlanmamış Parçalanmış Kodlama
- 27. Neden kodlamayı argüman siliyor?
- 28. Kalıcı HTTP bağlantılarını destekleyen bir Netty HTTP sunucusunun basit bir örneğinin farkında olan var mı?
- 29. Kodlamayı işaretlemek için Eclipse eklentisi
- 30. Kodlamayı açma ve kaydetme Emacs
sayesinde, Twisted duymuştum, ama benim ilk izlenim benim görev için biraz ağır olmasıydı: – slacy
Duygularınızı anlıyorum ... twisted'in büyük bir API'si var, biraz da kültüre benziyor ve biraz da bir öğrenme eğrisi var. Beni başlangıçta da çıkardı, ama bazen iş için doğru araç olduğunu buldum :-) –