Thanks for replying, On 2006-08-25, 13:04, Perrin Harkins wrote: > HTTP has defined roles of client and server. You can't make HTTP > requests and respond to other HTTP requests on a single socket > connection, at least not without writing your own protocol which will > not really be HTTP.
I may have explained that awkwardly. I realize that there has to be one client, and one server. The CPE is the client, sending HTTP POST _queries_ with some data. The remote management server (apache server) is sending HTTP POST _replies_ back, but those also contains data. This is the logic: CPE client: POST /path/to/resource HTTP/1.1 Content-Type: text/xml; charset=ISO-8859-1 ...soap data... server: HTTP/1.1 200 OK Content-Type: text/xml;charset=utf-8 ...soap data... CPE client: POST /path/to/resource HTTP/1.1 Content-Type: text/xml; charset=ISO-8859-1 ...soap data... server: HTTP/1.1 200 OK Content-Type: text/xml;charset=utf-8 ...soap data... .. and so on .. data is flowing in both directions, but there is still one HTTP client (the CPE), and one server (the apache server). > Are you sure that they are really supposed to swap roles? I don't think they should. The CPE is the HTTP client, and the apache server is the HTTP server. > Normally with SOAP one client makes a POST request and the server > responds with a response body. The connection can be kept open > with normal HTTP 1.1 mechanisms (all done for you by apache) [...] Great. I've set "KeepAlive On" in httpd.conf .. and I'm also this config: Alias /perl/ /home/en/modperl/ PerlModule ModPerl::Registry <Location /perl> #SetEnv proxy-sendcl 1 SetHandler perl-script PerlResponseHandler ModPerl::Registry Options +ExecCGI PerlOptions +ParseHeaders Order allow,deny Allow from all </Location> The problem I am having is that I don't know how to access those HTTP POSTS. In the examples I've read in the documentation, it says that the (first) request can be accessed by: my $r = Apache2::RequestUtil->request; .. but when I have read the headers and the data in the first POST request, I'm not sure what to do in order to access the _second_ POST query. Can I throw the first $r away, and initialize a new one, or can I reset the first one, making it ready to receive a new HTTP request? As I'm writing this, I think that one one solution is to send a session cookie to the CPE in the response to the the first HTTP POST, store the session ID in some way locally, and then exit the script. The next HTTP POST from the same CPE will then include a session ID, which I can use to keep track of all the HTTP POSTS from the same host. I'll try that :-) > but if you really need to have the server make a request to the > client you will need to use something like LWP on a separate > socket. It doesn't have to make a (HTTP) request, I think. The server can communicate back to the client in the HTTP POST _response_. -- Erland Nylend Telenor