From: mame@... Date: 2017-10-19T12:51:31+00:00 Subject: [ruby-core:83394] [Ruby trunk Feature#855] HTTP/1.1 fixes and other enhancements to webrick Issue #855 has been updated by mame (Yusuke Endoh). Assignee changed from nahi (Hiroshi Nakamura) to normalperson (Eric Wong) Eric Wong, Could you handle this very old ticket about webrick? ---------------------------------------- Feature #855: HTTP/1.1 fixes and other enhancements to webrick https://bugs.ruby-lang.org/issues/855#change-67360 * Author: candlerb (Brian Candler) * Status: Assigned * Priority: Normal * Assignee: normalperson (Eric Wong) * Target version: next minor ---------------------------------------- =begin I raised the following issues on ruby-core: 1. When returning an open IO object (without Content-Length or chunking), Webrick fails to close the HTTP/1.1 connection, and hence the client waits forever for the end of the data. http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/18454 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/18565 2. Webrick makes it very difficult to send a '100 continue' response when a HTTP/1.1 client requests one, and yet the RFC2616 says it *must* do so. http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/18459 3. It would be convenient to be able to stream not just real IO objects, but other objects which duck-type like them (such as an open zip file entry from rubyzip) http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/18460 4. It would be convenient to be able to provide a proc object to generate a streamed response: proc { |out| out << "data"; out << "more data"; etc } 5. The default block size of 4K is too small to be efficient when serving large files. This was already fixed for 1.9 in http://redmine.ruby-lang.org/repositories/revision/ruby-19?rev=10167 (default now 64K and tunable). Please consider this for 1.8, especially since a similar improvement has been backported for Net::HTTP in http://redmine.ruby-lang.org/repositories/revision/ruby-18?rev=12092 The attached file contains small monkey-patches to address these issues. If there is interest these could be rewritten as actual patches against webrick. =end ---Files-------------------------------- webrick-patches.rb (2.69 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: