Re: PHP and Connection: Close

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

 



Jon Anderson wrote:
Chris wrote:

That's the design of http - it's stateless. Each connection is treated separately and as such closes itself when it's finished.

If you want to keep it open you'll need to create your own "service" that listens to a port and responds accordingly - which can be quite a lot of work.

http://www.php.net/manual/en/ref.sockets.php

I can easily prove that HTTP can do it: Open a terminal or an SSH connection to a unix machine, then type:
$ telnet <some web server> 80
GET / 1.1
Connection: Keep-Alive

<server resonds, keeps connection open>
GET / 1.1
Connection: Keep-Alive

<server responds, keeps connection open>
GET / 1.1
Connection: close

<server responds, closes connection>

Connections are capable of keeping themselves open for multiple requests - that's what "Connection: close" and "Connection: Keep-Alive" headers are for. For example http://webservices.codingtheweb.com/bin/qotd (with WSDL http://webservices.codingtheweb.com/bin/qotd.wsdl). If you open a connection to that with a soap client, you can make multiple requests to it. Trace it with ethereal or something, and you'll notice there's only one TCP connection setup (syn,syn/ack), followed by as many requests as you want, and eventually one TCP teardown (fin/ack,ack) if you set up the soap client to send a close request at some point.

The example script above may not be PHP (I don't have the code, as it's not mine - just a random example), so for all I know PHP may not be capable of such a thing. It may even be a limitation of the web server (apache2) or the server's setup. (I just don't know, so that's why I'm asking here.)

If you're doing an exit() or die() or the script stops executing that's like you closing the connection - so apache is going to close the connection (as it should).

--
Postgresql & php tutorials
http://www.designmagick.com/

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux