Mailing List Archive

Support open source code!


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tlug: HTTP headers q



>>>>> "Adrian" == Adrian Havill <havill@example.com> writes:

    Adrian> On Thu, 17 Feb 2000, Stephen J. Turnbull wrote:

    >> >>>>> "Adrian" == Adrian Havill <havill@example.com> writes:

    Adrian> Also, your output to stdout is buffered whether you like
    Adrian> it or not, even if you use "nph-", for compatibility with
    Adrian> SSL and other things.

    >> The Apache >=v1.3 FAQ alleges not.  FWIW.

    Adrian> <URL:http://www.apache.org/docs/upgrading_to_1_3.html>:

    Adrian> : [snip] : "nph-" CGIs, which formerly provided a direct
    Adrian> socket to the client : without any server post-processing,
    Adrian> were not fully compatible with : HTTP/1.1 or SSL
    Adrian> support. As such they would have had to implement the :
    Adrian> transport details, such as encryption or chunking, in
    Adrian> order to work : properly in certain situations. Now, the
    Adrian> only difference between nph : and non-nph scripts is
    Adrian> "non-parsed headers". : [snip]

    Adrian> Am I misunderstanding this?

Dunno, depends on what you mean by buffering.  Evidently some
buffering is done, but in 1.3 CGIs are allegedly unbuffered in the
sense that a stdout flush results in packets being sent:

------------------------------------------------------------------------
F. Dynamic Content (CGI and SSI)

   4. How can I get my script's output without Apache buffering
      it?  Why doesn't my server push work?

  As of Apache 1.3, CGI scripts are essentially not buffered.  Every time
  your script does a "flush" to output data, that data gets relayed on to
  the client.  Some scripting languages, for example Perl, have their own
  buffering for output - this can be disabled by setting the `$|'
  special variable to 1.  Of course this does increase the overall number
  of packets being transmitted, which can result in a sense of slowness for 
  the end user.

  Prior to 1.3, you needed to use "nph-" scripts to accomplish
  non-buffering.  Today, the only difference between nph scripts and
  normal scripts is that nph scripts require the full HTTP headers to
  be sent.
------------------------------------------------------------------------

I think that's the interesting sense of "unbuffered."  I'm not sure
how Apache would handle (eg) a partial header, whether it would stash
it until it was complete, then send it on, or whether it would stash
headers until all the stashed headers in the block were complete.  But
that probably doesn't matter.

-- 
University of Tsukuba                Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences       Tel/fax: +81 (298) 53-5091
_________________  _________________  _________________  _________________
What are those straight lines for?  "XEmacs rules."
--------------------------------------------------------------------
Next Nomikai Meeting: February 18 (Fri) 19:00 Tengu TokyoEkiMae
Next Technical Meeting:  March 11 (Sat) 13:00 Temple University Japan
* Topic: TBD
--------------------------------------------------------------------
more info: http://www.tlug.gr.jp        Sponsor: Global Online Japan


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links