handling HTTP redirects
Laurent Bourgès
Laurent.Bourges at obspm.fr
Thu Jun 5 02:21:19 PDT 2008
Hi all,
I just want to inform you about technical details.
A reference implementation of HTTP 1.1 is available for the java
environment thanks to apache.org (so, open source) :
Apache commons Http Client 3.1
http://hc.apache.org/httpclient-3.x/
(in near future : Http Client 4.0 will be released as a release
candidate ...)
This library is able to handle properly (tested in several projects) :
- cookies for session management (authentication)
- HTTP follow redirect (302) ...
- supports all HTTP methods (GET, POST, DELETE, HEAD...)
- Http headers are easy parsed and built
From apache docs :
Features
* Standards based, pure Java, implementation of HTTP versions
1.0 and 1.1
* Full implementation of all HTTP methods (GET, POST, PUT,
DELETE, HEAD, OPTIONS, and TRACE) in an extensible OO framework.
* Supports encryption with HTTPS (HTTP over SSL) protocol.
* Granular non-standards configuration and tracking.
* Transparent connections through HTTP proxies.
* Tunneled HTTPS connections through HTTP proxies, via the
CONNECT method.
* Transparent connections through SOCKS proxies (version 4 & 5)
using native Java socket support.
* Authentication using Basic, Digest and the encrypting NTLM (NT
Lan Manager) methods.
* Plug-in mechanism for custom authentication methods.
* Multi-Part form POST for uploading large files.
* Pluggable secure sockets implementations, making it easier to
use third party solutions
* Connection management support for use in multi-threaded
applications. Supports setting the maximum total connections as well
as the maximum connections per host. Detects and closes stale
connections.
* Automatic Cookie handling for reading Set-Cookie: headers from
the server and sending them back out in a Cookie: header when
appropriate.
* Plug-in mechanism for custom cookie policies.
* Request output streams to avoid buffering any content body by
streaming directly to the socket to the server.
* Response input streams to efficiently read the response body
by streaming directly from the socket to the server.
* Persistent connections using KeepAlive in HTTP/1.0 and
persistance in HTTP/1.1
* Direct access to the response code and headers sent by the
server.
* The ability to set connection timeouts.
* HttpMethods implement the Command Pattern to allow for
parallel requests and efficient re-use of connections.
* Source code is freely available under the Apache Software
License.
Standards Compliance
HttpClient implements the following specifications endorsed by the
Internet Engineering Task Force (IETF) and the internet at large:
* RFC1945 Hypertext Transfer Protocol -- HTTP/1.0
* RFC2616 Hypertext Transfer Protocol -- HTTP/1.1
* RFC2617 HTTP Authentication: Basic and Digest Access
Authentication
* RFC2109 HTTP State Management Mechanism (Cookies)
* RFC2396 Uniform Resource Identifiers (URI): Generic Syntax
* RFC1867 Form-based File Upload in HTML
Enjoy,
Good morning or afternoon,
Laurent
Le 4 juin 08 à 19:49, Roy Williams a écrit :
> Sebastien
>
> Of course the Vizier people can use redirects if they want, it is
> quite legal. It is also legal to make a cone search which never
> returns more than three sources, or one that returns an error for
> every possible request.
>
> I have done a rough timing test of Vizier cone searches, and I find
> that the redirect costs about 0.5 seconds per cone search. In other
> words, a Vizier service will be quite a bit faster if you simply
> replace up front the string "vizier" with "webviz" in all the
> accessURLs that you get from the registry. Since Vim runs hundreds
> of cone searches at a time, this is what I have chosen to do, to
> save a few minutes of my customer's valuable time.
>
> Roy
>
> --
>
> California Institute of Technology
> 626 395 3670
>
------------------------------------------------------------------------
-
Laurent Bourgès, engineer
EURO-VO-DCA Project
LUTh, Observatoire de Paris-Meudon
5 place Jules Janssen
F-92 195 Meudon Cedex
Tel : 01 45 07 74 25
Email: Laurent.Bourges at obspm.fr
------------------------------------------------------------------------
-
More information about the registry
mailing list