jQuery in Action, 3rd edition
The moose likes Servlets and the fly likes Question about open connections Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "Question about open connections" Watch "Question about open connections" New topic

Question about open connections

Richard Golebiowski
Ranch Hand

Joined: May 05, 2010
Posts: 213

In a previous post it was stated:

With Servlets you don't usually 'Push' the status of long running tasks to the client. Instead the client has to 'Pull' the data. This is because HTTP is a Request/Response cycle - Clients Request info, Server Responds with it. These cycles are intended to be short, and making them long can cause trouble by clogging the server with open connections.

How is pushing data that much different then watching a video?

David Newton

Joined: Sep 29, 2008
Posts: 12617

Beause the client is requesting the data (plus < HTML 5, videos are played by a player app, not HTML).

Push means the server can send data to the client at arbitrary times.
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 17417

Actually, HTTP-based servers can't "push" at all. At best all you can do is "tug".

This isn't just a J2EE thing. The HTTP protocol strictly defines how this works:

1. The client opens a connection to the server (usually port 80, 443, although others also work such as 8080, 8443 depending on the server).

2. The client opens a reply port to listen on.

3. The client sends an HTTP request to the server. That request includes the reply port number as part of its overhead.

4. The server, which has been listening for requests, accepts the request, dispatches it to back-end logic which generates response data.

5. The server sends the response data to the listening reply port on the client.

6. The client closes its connections to the server and renders the response (usually as a web page).

There are no long-term open connections. The connections remain only as long as it takes to service a request and receive a reply. The next request starts it all over again. No reply can be sent ("pushed") except in response to a request.

An IDE is no substitute for an Intelligent Developer.
I agree. Here's the link: http://aspose.com/file-tools
subject: Question about open connections
It's not a secret anymore!