Speed of Ruby/modruby vs PHP

Hi:

I was doing some simple timing tests with modruby
and found that it was slower than php. For the
10k file that I was using to test with, modruby
is 41.5% slower.

To test the timing, I used net/http to get the
page. Each time test was done 10 times and averaged.

Here is the first set of tests that I ran:

cat timetest.php

<?php header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header ("Pragma: no-cache"); // HTTP/1.0 include("10k.html"); ?>

cat timetest.rhtml
<%
#require 'cgi’
print File.open(“10k.html”).read
%>

./http_speed.rb localhost /timetest.php
Avg: 0.1454315
Max: 0.160024
Min: 0.1396

./http_speed.rb localhost /timetest.rhtml
Avg: 0.1959076
Max: 0.204669
Min: 0.194422

After running these tests, I thought that the problem
may be in the way I was reading the file in ruby.
So, I made a another test that did not execute and
php or ruby code, but still had the 10k file.

head -5 10k.php

<% %> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 123456789
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 123456789

head -5 10k.rhtml

<% %> 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 123456789
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 123456789

ls -alF 10k*
-rw-r–r-- 1 jfreeze jfreeze 10240 Oct 3 20:01 10k.html
-rw-r–r-- 1 jfreeze jfreeze 10240 Oct 5 09:19 10k.php
-rw-r–r-- 1 jfreeze jfreeze 10240 Oct 5 09:19 10k.rhtml

./http_speed.rb localhost /10k.php
Avg: 0.141425
Max: 0.148798
Min: 0.138738

./http_speed.rb localhost /10k.rhtml
Avg: 0.2008641
Max: 0.209457
Min: 0.199239

So, there it is. Modruby is doing nothing and is 41% slower
than php for the test cases given. Could this be a configuration issue?

Thanks

PS: If your interested in my timing code, here it is:

#!/usr/bin/env ruby

require 'net/http’
Net::HTTP.version_1_1 # declear to use 1.1 features.

def usage
<<-EOT
Usage: Filename.basename($0) server path
server e.g.: www.xyz.com
path e.g.: /index.html
EOT
end#usage

unless 2 == ARGV.size
STDERR.puts usage
exit
end

server = ARGV.shift
path = ARGV.shift
port = 80
simul = 10

def time_page(server, port, path)
time_start = Time.now
Net::HTTP.start( server, port ) { |http|
response, body = http.get(path)
#puts body
}
time = Time.now - time_start
end

times = []
threads = []
simul.times { |i|
threads << Thread.new(i) { times << time_page(server,port,path)}
sleep .3 # don’t overload the server
}
threads.each {|t| t.join }

sum = 0; times.each { |t| sum += t }
avg = sum / times.size
puts "Avg: #{avg}"
puts "Max: #{times.max}"
puts “Min: #{times.min}”

···


Jim Freeze

Programming Ruby
def initialize; fun; end
A language with class

“Jim Freeze” jim@freeze.org wrote in message
news:20021005093744.A71192@freeze.org

So, there it is. Modruby is doing nothing and is 41% slower
than php for the test cases given. Could this be a configuration issue?

If you bother, I’d be interested to hear about similar timings for
Ruby/FastCGI
http://fenris.codedogs.ca/~eli/fastcgi.html
There are two versions: a C interfaced and a pure Ruby version.

It would also be interesting to know the difference between Ruby and PHP
when discounting the startup time.

Mikkel

see
[ruby-list:35881] CGI vs mod_ruby vs FastCGI
http://www.excite.co.jp/world/url/?wb_url=http://blade.nagaokaut.ac.jp/cgi-bin/rcat.rb/ruby/ruby-list/35881&wb_lp=jaen
[ruby-list:35890] Re: CGI vs mod_ruby vs FastCGI
http://www.excite.co.jp/world/url/?wb_url=http://blade.nagaokaut.ac.jp/cgi-bin/rcat.rb/ruby/ruby-list/35890&wb_lp=jaen
[ruby-list:35894] Re: CGI vs mod_ruby vs FastCGI
http://www.excite.co.jp/world/url/?wb_url=http://blade.nagaokaut.ac.jp/cgi-bin/rcat.rb/ruby/ruby-list/35894&wb_lp=jaen

fast <- -> slow
mod_ruby(RubyHandler) > FastCGI(fcgi.so) > mod_ruby >> CGI

···


MoonWolf moonwolf@moonwolf.com

“Jim Freeze” jim@freeze.org wrote in message
news:20021005093744.A71192@freeze.org

So, there it is. Modruby is doing nothing and is 41% slower
than php for the test cases given. Could this be a configuration issue?

If you bother, I’d be interested to hear about similar timings for
Ruby/FastCGI
http://fenris.codedogs.ca/~eli/fastcgi.html
There are two versions: a C interfaced and a pure Ruby version.

I’ll look into it today and report back here.

It would also be interesting to know the difference between Ruby and PHP
when discounting the startup time.

I’m not sure the best/easiest way to test this.

Mikkel

After I posted I started thinking that maybe I had the Ruby
version of eruby instead of the C version (eruby vs erb,
I can never remember which is which).

This is what I have.

RubyRequire apache/eruby-run # # handle *.rbx as eruby files. SetHandler ruby-object RubyHandler Apache::ERubyRun.instance

Is this the C version?

···

On Sun, Oct 06, 2002 at 12:09:46AM +0900, MikkelFJ wrote:


Jim Freeze

Programming Ruby
def initialize; fun; end
A language with class

I thought one of the benefits of mod_ruby was having the interpreter pre-loaded
and required libraries cached in apache.

···

On Sun, Oct 06, 2002 at 12:09:46AM +0900, MikkelFJ wrote:

“Jim Freeze” jim@freeze.org wrote in message
news:20021005093744.A71192@freeze.org

So, there it is. Modruby is doing nothing and is 41% slower
than php for the test cases given. Could this be a configuration issue?

If you bother, I’d be interested to hear about similar timings for
Ruby/FastCGI
http://fenris.codedogs.ca/~eli/fastcgi.html
There are two versions: a C interfaced and a pure Ruby version.

It would also be interesting to know the difference between Ruby and PHP
when discounting the startup time.

Mikkel


Alan Chen
Digikata LLC
http://digikata.com

“MoonWolf” moonwolf@moonwolf.com wrote in message
news:20021006120313.892B.MOONWOLF@moonwolf.com

fast ← → slow
mod_ruby(RubyHandler) > FastCGI(fcgi.so) > mod_ruby >> CGI

From what I can figure out - give and take comparable timings:

a) 400 request/sec with mod_ruby and cached Ruby script
b) 200 request/sec with fastcgi.so (the mixed C/Ruby version)
c) 100 request/sec with FCGI (clean Ruby version)
d) 70 request/sec with mod_ruby naive.

a) requires Apache reboot when script is changed.

Given this, it seems to me that the fastcgi.so version is the best Ruby
solution because it is by far the most flexible solution while maintaining
decent speed, and if you want real speed you probably shouldn’t go with Ruby
in the first place.
This should be balanced against the actual execution time of the script - if
it takes the major part of the execution time, the choice of deployment
becomes less relevant.

If we take Jim’s PHP/Ruby result Ruby is only 41% slower than PHP in the d)
solution (I presume), meaning that PHP is probably comparable to solution c)
in performance.

Thus Ruby should compare favorably to PHP, but only if deployed carefully.

It would still be nice to know the script performance of PHP vs. Ruby thus I
turned to Bagleys shootout that revealed relative CPU numbers: PHP 197, Ruby
546. In other words, Ruby is more than 100% faster than PHP in that
benchmark.

FastCGI can also be executed on a separate box not disturbed by Web traffic.
On a 100 or 1000 Mbit network, it should be able to handle a fair number of
request.

According to the links transmitted by MoonWolf, there is the Nora framework
on RAA, which appears to contain an FCGI solution.

Mikkel

The data on that page says that FCGI (C version) is 2x faster
than FastCGI (Ruby version). And, the link to FCGI is
dead. Do you know where I can get it?

···

On Sun, Oct 06, 2002 at 12:38:54AM +0900, Jim Freeze wrote:

On Sun, Oct 06, 2002 at 12:09:46AM +0900, MikkelFJ wrote:

If you bother, I’d be interested to hear about similar timings for
Ruby/FastCGI
http://fenris.codedogs.ca/~eli/fastcgi.html
There are two versions: a C interfaced and a pure Ruby version.

I’ll look into it today and report back here.


Jim Freeze

Programming Ruby
def initialize; fun; end
A language with class

“MoonWolf” moonwolf@moonwolf.com wrote in message
news:20021006120313.892B.MOONWOLF@moonwolf.com

fast ← → slow
mod_ruby(RubyHandler) > FastCGI(fcgi.so) > mod_ruby >> CGI

From what I can figure out - give and take comparable timings:

a) 400 request/sec with mod_ruby and cached Ruby script

How do I configure mod_ruby to run with a cached script?

b) 200 request/sec with fastcgi.so (the mixed C/Ruby version)
c) 100 request/sec with FCGI (clean Ruby version)
d) 70 request/sec with mod_ruby naive.

a) requires Apache reboot when script is changed.

[snipped[

···

On Sun, Oct 06, 2002 at 08:50:48PM +0900, MikkelFJ wrote:


Jim Freeze

Programming Ruby
def initialize; fun; end
A language with class

“Jim Freeze” jim@freeze.org wrote in message
news:20021005174928.A71759@freeze.org

The data on that page says that FCGI (C version) is 2x faster
than FastCGI (Ruby version). And, the link to FCGI is
dead. Do you know where I can get it?

Nope - sometimes the site is down altogether but seems to work except for
said link.
I assume there are C/Ruby interface in the source so the only way to get it
is by mailing the author Eli Green or if someone else downloaded it - i.e.
the source at fastcgi.com won’t cut it.
We really should have a central repository.

Mikkel

How do I configure mod_ruby to run with a cached script?

···

httpd.conf:

RubyRequire apache/ruby-run
RubyRequire apache/eruby-run
RubyRequire apache/myapp # Add

<Location /myapp>
SetHandler ruby-object
RubyHandler Apache::MyAppRun.instance

<Files *.rbx>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance

<Files *.rhtml>
SetHandler ruby-object
RubyHandler Apache::ERubyRun.instance


RUBYLIB/apache/myapp.rb:
require ‘singleton’

class MyApp
include Singleton

def handler(r)
# r = Apache::Request instance
# see http://www.modruby.net/doc/classes.en.html#label:7

return Apache::OK
end
end


MoonWolf moonwolf@moonwolf.com

How do I configure mod_ruby to run with a cached script?


httpd.conf:

RubyRequire apache/ruby-run
RubyRequire apache/eruby-run
RubyRequire apache/myapp # Add

Is ‘apache/myapp’ a literal here?

<Location /myapp>

Is ‘/myapp’ a literal here even if ‘myapp.rb’ is at
‘RUBYLIB/ap;ache/myapp.rb’ as indicated below?

SetHandler ruby-object
RubyHandler Apache::MyAppRun.instance

Where is ‘Apache::MyAppRun.instance’ defined?
The only thing I see defined is ‘MyApp#handler’.

<Files *.rbx>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance

<Files *.rhtml>
SetHandler ruby-object
RubyHandler Apache::ERubyRun.instance


RUBYLIB/apache/myapp.rb:
require ‘singleton’

class MyApp
include Singleton

def handler(r)
# r = Apache::Request instance
# see http://www.modruby.net/doc/classes.en.html#label:7

return Apache::OK
end
end


MoonWolf moonwolf@moonwolf.com

Thanks

···

On Sun, Oct 06, 2002 at 09:44:41PM +0900, MoonWolf wrote:


Jim Freeze

Programming Ruby
def initialize; fun; end
A language with class

see mod_ruby Documents
http://www.modruby.net/doc/index.en.html
and
apache/ruby-run.rb , apache/eruby-run.rb

Where is ‘Apache::MyAppRun.instance’ defined?
The only thing I see defined is ‘MyApp#handler’.

I’m sorry, it is my mistake.

  • RubyHandler Apache::MyAppRun.instance
  • RubyHandler Apache::MyApp.instance

My English is weak. I do not want to use English not much.

I am good at Japanese.

···


MoonWolf moonwolf@moonwolf.com

see mod_ruby Documents
http://www.modruby.net/doc/index.en.html
and
apache/ruby-run.rb , apache/eruby-run.rb

Where is ‘Apache::MyAppRun.instance’ defined?
The only thing I see defined is ‘MyApp#handler’.

I’m sorry, it is my mistake.

  • RubyHandler Apache::MyAppRun.instance
  • RubyHandler Apache::MyApp.instance

My English is weak. I do not want to use English not much.

I am good at Japanese.

Ok, first things first. I have created the following tree

main_site
+ htdocs
timetest.rhtml
+ ruby
rubyapp.rb

I have the following in my http.conf file:

RubyRequire apache/ruby-run RubyRequire apache/eruby-run RubyRequire apache/preload_timetest.rb # this does ^^^^^^^^^^^^^^^^^^^^^^^^^^ # not look right

<Location /ruby>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
RubyHandler Apache::MyApp.instance

<Files *.rhtml>
SetHandler ruby-object
RubyHandler Apache::ERubyRun.instance

From a web browser the following works:

mysite/timtest.rhtml

The following does NOT work:

mysite/preload_timetest.rb

I get a not found error.

Reading eruby-run.rb and ruby-run.rb does not help.

Am I right to think that a preloaded ruby script needs
to be in the RUBYLIB/apache path and not in the mysite/ruby
directory? If so, then what does the location directive above
have to do with setting up a preloaded ruby script?

Puzzled.

Jim

···

On Sun, Oct 06, 2002 at 11:36:33PM +0900, MoonWolf wrote:
from my website:


MoonWolf moonwolf@moonwolf.com


Jim Freeze

Programming Ruby
def initialize; fun; end
A language with class

[moving to modruby@modruby.net]

> see mod_ruby Documents
> http://www.modruby.net/doc/index.en.html
> and
> apache/ruby-run.rb , apache/eruby-run.rb
>
> > Where is 'Apache::MyAppRun.instance' defined?
> > The only thing I see defined is 'MyApp#handler'.
>
> I'm sorry, it is my mistake.
>
> - RubyHandler Apache::MyAppRun.instance
> + RubyHandler Apache::MyApp.instance
>
> # My English is weak. I do not want to use English not much.
> # I am good at Japanese.
>

Ok, first things first. I have created the following tree
from my website:

  main_site
     + htdocs
         timetest.rhtml
     + ruby
         rubyapp.rb

Move this into your site_ruby path, not into the document root.

I have the following in my http.conf file:

  <IfModule mod_ruby.c>
  RubyRequire apache/ruby-run
  RubyRequire apache/eruby-run
  RubyRequire apache/preload_timetest.rb
# this does ^^^^^^^^^^^^^^^^^^^^^^^^^^
# not look right

I wouldn't worry about this.

  <Location /ruby>
    SetHandler ruby-object
    RubyHandler Apache::RubyRun.instance
    RubyHandler Apache::MyApp.instance
  </Location>

Change the above to (I think you can trim it down to the following if
you write the module correctly):

  <Location /myapp>
    RubyHandler Apache::MyApp
  </Location>

From a web browser the following works:

  mysite/timtest.rhtml

The following does NOT work:

  mysite/preload_timetest.rb

.rb files aren't associated with mod_ruby. Try changing it to a .rbx
file and I think you'll see some better results.

Am I right to think that a preloaded ruby script needs to be in the
RUBYLIB/apache path and not in the mysite/ruby directory?

Yes.

If so, then what does the location directive above have to do with
setting up a preloaded ruby script?

Do you really need to preload your script? I'd recommend running the
benchmark a total of 4 times.

1st time: run the benchmark, then throw away the data
2-4th time: run the benchmark, avg the times.

-sc

···

--
Sean Chittenden

[moving to modruby@modruby.net]

> > see mod_ruby Documents
> > http://www.modruby.net/doc/index.en.html
> > and
> > apache/ruby-run.rb , apache/eruby-run.rb
> >
> > > Where is 'Apache::MyAppRun.instance' defined?
> > > The only thing I see defined is 'MyApp#handler'.
> >
> > I'm sorry, it is my mistake.
> >
> > - RubyHandler Apache::MyAppRun.instance
> > + RubyHandler Apache::MyApp.instance
> >
> > # My English is weak. I do not want to use English not much.
> > # I am good at Japanese.
> >
>
> Ok, first things first. I have created the following tree
> from my website:
>
> main_site
> + htdocs
> timetest.rhtml
> + ruby
> rubyapp.rb

Move this into your site_ruby path, not into the document root.

Ok, I'll move it to site_ruby/apache/preload_timetest.rb.

> I have the following in my http.conf file:
>
> <IfModule mod_ruby.c>
> RubyRequire apache/ruby-run
> RubyRequire apache/eruby-run
> RubyRequire apache/preload_timetest.rb
> # this does ^^^^^^^^^^^^^^^^^^^^^^^^^^
> # not look right

I wouldn't worry about this.

> <Location /ruby>
> SetHandler ruby-object
> RubyHandler Apache::RubyRun.instance
> RubyHandler Apache::MyApp.instance
> </Location>

Change the above to (I think you can trim it down to the following if
you write the module correctly):

  <Location /myapp>
    RubyHandler Apache::MyApp
  </Location>

This still makes no sense to me. I have the following after
making the changes from above:

  mywebsite
   +-htdocs
   > *.rhtml - these get executed fine
   +-ruby
     no ruby files here yet. Don't see a need for them

  siteruby/apache
   +-preload_timetest.rb - Has the 'class MyApp' inside.

Now, I have two questions. It looks like I need
a .rthml or a .rbx file that loads MyApp from preload_timetest.rb.
I'm not sure how that code should look.

Second, what is <Location /myapp> doing?
Is myapp the name of the class or the name of the file?
Is this a directory off of site_ruby?

> From a web browser the following works:
>
> mysite/timtest.rhtml
>
> The following does NOT work:
>
> mysite/preload_timetest.rb

.rb files aren't associated with mod_ruby. Try changing it to a .rbx
file and I think you'll see some better results.

> Am I right to think that a preloaded ruby script needs to be in the
> RUBYLIB/apache path and not in the mysite/ruby directory?

Yes.

> If so, then what does the location directive above have to do with
> setting up a preloaded ruby script?

Do you really need to preload your script? I'd recommend running the
benchmark a total of 4 times.

1st time: run the benchmark, then throw away the data
2-4th time: run the benchmark, avg the times.

If you look at the min and max times of the scripts, there
is very little spread. Definitly less than the 50ms difference
that I was seeing. Also, the more I think about it, the more
I think the 50ms difference is additional startup delay that
mod_ruby has over php and not performance.

···

On Sun, Oct 06, 2002 at 12:37:53PM -0700, Sean Chittenden wrote:

-sc

--
Sean Chittenden

--
Jim Freeze
----------
Programming Ruby
def initialize; fun; end
A language with class

Ok, here is how I understand this.
Does this look correct?

In httpd.conf

  <IfModule mod_ruby.c>
    RubyRequire apache/ruby-run
    RubyRequire apache/eruby-run
    RubyRequire apache/preload_timetest.rb # contains MyApp class
       
    <Location /preload_timetest> # If URL is: http://www.mysite/preload_timetest
      RubyHandler Apache::MyApp # Call Apache::MyApp.handler ??
    </Location>

  <Files *.rhtml>
    SetHandler ruby-object
    RubyHandler Apache::ERubyRun.instance
  </Files>
  </IfModule>

Although no code is required in DocumentRoot
when running preloaded scripts, here is the
standard layout for the above declarations:

   mysite
    +-htdocs
      *.rhtml - these get executed as ruby files using eruby.

···

--
Jim Freeze

Ok, I did all the above and it works from a browser,
but Net::HTTP is not happy with me.
It gives the following error when I try to time the page:

./http_speed.rb mysite /preload_timetest
/usr/local/lib/ruby/1.6/net/http.rb:1177:in `read_status': wrong status line: <html> (Net::HTTPBadResponse)
        from ./http_speed.rb:48:in `join'
        from ./http_speed.rb:48
        from ./http_speed.rb:48:in `each'
        from ./http_speed.rb:48

And http_speed.rb is:
     25 def time_page(server, port, path)
     26 time_start = Time.now
     27 begin
     28 Net::HTTP.start( server, port ) { |http|
     29 response, = http.get(path)
     30 # print response.body
     31 }
     32 rescue Net::ProtoRetriableError => err
     33 if m = %r<http://([^/]+)>.match( err.response['location'] ) then
     34 server = m[1].strip
     35 path = m.post_match
     36 retry
     37 end
     38 end
     39 time = Time.now - time_start
     40 end
     41
     42 times =
     43 threads =
     44 simul.times { |i|
     45 threads << Thread.new(i) { times << time_page(server,port,path)}
     46 sleep .3
     47 }
     48 threads.each {|t| t.join }
     49

Any ideas?

···

On Sun, Oct 06, 2002 at 05:07:25PM -0400, Jim Freeze wrote:

Ok, here is how I understand this.
Does this look correct?

In httpd.conf

  <IfModule mod_ruby.c>
    RubyRequire apache/ruby-run
    RubyRequire apache/eruby-run
    RubyRequire apache/preload_timetest.rb # contains MyApp class
       
    <Location /preload_timetest> # If URL is: http://www.mysite/preload_timetest
      RubyHandler Apache::MyApp # Call Apache::MyApp.handler ??
    </Location>

  <Files *.rhtml>
    SetHandler ruby-object
    RubyHandler Apache::ERubyRun.instance
  </Files>
  </IfModule>

Although no code is required in DocumentRoot
when running preloaded scripts, here is the
standard layout for the above declarations:

   mysite
    +-htdocs
      *.rhtml - these get executed as ruby files using eruby.

--
Jim Freeze

Hi:

I have set up a pre-loaded page with mod_ruby that I access with the URL

http://mysite/preload_timetest

The page loads fine via a browser, but Net/HTTP gives
me the error listed below.

In httpd.conf

RubyRequire apache/ruby-run RubyRequire apache/eruby-run RubyRequire apache/preload_timetest.rb # contains MyApp class
<Location /preload_timetest>  # If URL is: http://www.mysite/preload_timetest
  RubyHandler Apache::MyApp   # Call Apache::MyApp.handler ??
</Location>

<Files *.rhtml>
SetHandler ruby-object
RubyHandler Apache::ERubyRun.instance

Ok, I did all the above and it works from a browser,
but Net::HTTP is not happy with me.
It gives the following error when I try to time the page:

./http_speed.rb mysite /preload_timetest
/usr/local/lib/ruby/1.6/net/http.rb:1177:in read_status': wrong status line: <html> (Net::HTTPBadResponse) from ./http_speed.rb:48:in join’
from ./http_speed.rb:48
from ./http_speed.rb:48:in `each’
from ./http_speed.rb:48

Loading this page via telnet I get the following:

telnet mysite 80
Trying 63.106.140.203…
Connected to mysite
Escape character is ‘^]’.
GET /preload_timetest HTTP/1.0

HTTP/1.1 404 Not Found
Server: Apache/1.3.26 (Unix) mod_ruby/0.9.8 Ruby/1.6.7 PHP/4.0.6
Connection: close
Content-Type: text/html; charset=iso-8859-1

404 Not Found

Not Found

The requested URL /preload_timetest was not found on this server.


Apache/1.3.26 Server at 63.106.140.203 Port 80 Connection closed by foreign host.

Looks like Net/HTTP is doing the right thing, I’m just not
sure what my browser does to get the page to work.

···

On Sun, Oct 06, 2002 at 07:56:30PM -0400, Jim Freeze wrote:

On Sun, Oct 06, 2002 at 05:07:25PM -0400, Jim Freeze wrote:
Date: Mon, 07 Oct 2002 00:57:51 GMT


Jim Freeze

Programming Ruby
def initialize; fun; end
A language with class

Ok, I did all the above and it works from a browser, but Net::HTTP
is not happy with me.

Don't trust your browser with anything. Dime to dollar what's
happening is you're forgetting to have your handler set the status
information:

r.status = 200
r.send_http_header

Net::HTTP is more rfc compliant than browsers in terms of what it's
tolerant of. -sc

···

--
Sean Chittenden

Caching? Proxy?

-billy.

···

On Mon, Oct 07, 2002 at 10:11:34AM +0900, Jim Freeze wrote:

Loading this page via telnet I get the following:

telnet mysite 80
Trying 63.106.140.203…
Connected to mysite
Escape character is ‘^]’.
GET /preload_timetest HTTP/1.0

HTTP/1.1 404 Not Found
Date: Mon, 07 Oct 2002 00:57:51 GMT
Server: Apache/1.3.26 (Unix) mod_ruby/0.9.8 Ruby/1.6.7 PHP/4.0.6
Connection: close
Content-Type: text/html; charset=iso-8859-1

404 Not Found

Not Found

The requested URL /preload_timetest was not found on this server.


Apache/1.3.26 Server at 63.106.140.203 Port 80 Connection closed by foreign host.

Looks like Net/HTTP is doing the right thing, I’m just not
sure what my browser does to get the page to work.


Meisterbohne Söflinger Straße 100 Tel: +49-731-399 499-0
eLösungen 89077 Ulm Fax: +49-731-399 499-9