hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Juan Luis de Amaya Robles" <JuanLuisdeAm...@concatel.com>
Subject RE: Persistent connections
Date Tue, 07 Feb 2006 08:41:06 GMT
Hi Oleg,

I send httpclient class traced and firefox information about same page.
I send the java class too.
Thanks a lot!!!!!

I configured log4j to:

log4j.logger.httpclient.wire.header=DEBUG
log4j.logger.org.apache.commons.httpclient=DEBUG

Traces (httpclient):

09:29:10: Java version: 1.5.0_01
09:29:10: Java vendor: Sun Microsystems Inc.
09:29:10: Java class path:
C:\projects\DocFinder\temp\classes-eclipse;C:\projects\DocFinder\prepara
tor.old\HtmlPreparator.jar;C:\projects\DocFinder\preparator.old\JacobMsO
fficePreparators.jar;C:\projects\DocFinder\preparator.old\OpenOfficePrep
arator.jar;C:\projects\DocFinder\preparator.old\PdfBoxPreparator.jar;C:\
projects\DocFinder\preparator.old\PlainTextPreparator.jar;C:\projects\Do
cFinder\preparator.old\PoiMsOfficePreparators.jar;C:\projects\DocFinder\
preparator.old\SimpleRtfPreparator.jar;C:\projects\DocFinder\preparator.
old\SwingRtfPreparator.jar;C:\projects\DocFinder\preparator.old\XmlPrepa
rator.jar;C:\projects\DocFinder\lib\simple-2.5.3.jar;C:\projects\DocFind
er\lib\jacobgen-msoffice2000.jar;C:\projects\DocFinder\lib\jakarta-regex
p-1.3.jar;C:\projects\DocFinder\lib\jacob.jar;C:\projects\DocFinder\lib\
log4j-1.2.11.jar;C:\projects\DocFinder\lib\lucene-1.4.3.jar;C:\projects\
DocFinder\lib\mysql-connector-317.jar;C:\projects\DocFinder\lib\PDFBox-0
.7.1.jar;C:\projects\DocFinder\lib\poi-3.0-alpha1-20050704.jar;C:\projec
ts\DocFinder\lib\poi-scratchpad-3.0-alpha1-20050704.jar;C:\projects\DocF
inder\lib\servlet.jar;C:\projects\DocFinder\lib\xercesImpl.jar;C:\projec
ts\DocFinder\lib\xml-apis.jar;C:\projects\DocFinder\lib\win\jdic.jar;C:\
projects\pfw-java\bin;C:\projects\pfw-java\lib\activation.jar;C:\project
s\pfw-java\lib\classes12.jar;C:\projects\pfw-java\lib\db2java.jar;C:\pro
jects\pfw-java\lib\jaas.jar;C:\projects\pfw-java\lib\jconn2.jar;C:\proje
cts\pfw-java\lib\jms-1.0.2a.jar;C:\projects\pfw-java\lib\jnet.jar;C:\pro
jects\pfw-java\lib\jsse.jar;C:\projects\pfw-java\lib\mail.jar;C:\project
s\pfw-java\lib\md5.jar;C:\projects\pfw-java\lib\mysql-connector-317.jar;
C:\projects\pfw-java\lib\soap.jar;C:\projects\pfw-java\lib\xalan.jar;C:\
projects\pfw-java\lib\xercesImpl.jar;C:\projects\pfw-java\lib\xml-apis.j
ar;C:\projects\pfw-java\lib\xmlrpc.jar;C:\projects\pfw-java\lib\log4j-1.
2.5.jar;C:\projects\pfw-java\lib\servlet.jar;C:\projects\pfw-java\lib\sy
nthetica.jar;C:\projects\DocFinder\lib\commons-httpclient-3.0.jar;C:\pro
jects\DocFinder\lib\commons-logging.jar;C:\projects\DocFinder\lib\common
s-logging-api.jar;C:\projects\DocFinder\lib\commons-codec-1.3.jar
09:29:10: Operating system name: Windows XP
09:29:10: Operating system architecture: x86
09:29:10: Operating system version: 5.1
09:29:11: SUN 1.5: SUN (DSA key/parameter generation; DSA signing;
SHA-1, MD5 digests; SecureRandom; X.509 certificates; JKS keystore; PKIX
CertPathValidator; PKIX CertPathBuilder; LDAP, Collection CertStores)
09:29:11: SunRsaSign 1.5: Sun RSA signature provider
09:29:11: SunJSSE 1.5: Sun JSSE provider(PKCS12, SunX509 key/trust
factories, SSLv3, TLSv1)
09:29:11: SunJCE 1.5: SunJCE Provider (implements RSA, DES, Triple DES,
AES, Blowfish, ARCFOUR, RC2, PBE, Diffie-Hellman, HMAC)
09:29:11: SunJGSS 1.0: Sun (Kerberos v5)
09:29:11: SunSASL 1.5: Sun SASL provider(implements client mechanisms
for: DIGEST-MD5, GSSAPI, EXTERNAL, PLAIN, CRAM-MD5; server mechanisms
for: DIGEST-MD5, GSSAPI, CRAM-MD5)
09:29:11: Set parameter http.useragent = Jakarta Commons-HttpClient/3.0
09:29:11: Set parameter http.protocol.version = HTTP/1.1
09:29:11: Set parameter http.connection-manager.class = class
org.apache.commons.httpclient.SimpleHttpConnectionManager
09:29:11: Set parameter http.protocol.cookie-policy = rfc2109
09:29:11: Set parameter http.protocol.element-charset = US-ASCII
09:29:11: Set parameter http.protocol.content-charset = ISO-8859-1
09:29:11: Set parameter http.method.retry-handler =
org.apache.commons.httpclient.DefaultHttpMethodRetryHandler@1d80e6d
09:29:11: Set parameter http.dateparser.patterns = [EEE, dd MMM yyyy
HH:mm:ss zzz, EEEE, dd-MMM-yy HH:mm:ss zzz, EEE MMM d HH:mm:ss yyyy,
EEE, dd-MMM-yyyy HH:mm:ss z, EEE, dd-MMM-yyyy HH-mm-ss z, EEE, dd MMM yy
HH:mm:ss z, EEE dd-MMM-yyyy HH:mm:ss z, EEE dd MMM yyyy HH:mm:ss z, EEE
dd-MMM-yyyy HH-mm-ss z, EEE dd-MMM-yy HH:mm:ss z, EEE dd MMM yy HH:mm:ss
z, EEE,dd-MMM-yy HH:mm:ss z, EEE,dd-MMM-yyyy HH:mm:ss z, EEE, dd-MM-yyyy
HH:mm:ss z]
09:29:11: Set parameter http.connection.timeout = 30000
09:29:11: Set parameter http.protocol.cookie-policy = compatibility
Target URL: http://www-dev.fundacionolgatorres.org/index.php
09:29:11: enter GetMethod(String)
09:29:11: HttpMethodBase.addRequestHeader(Header)
09:29:11: HttpMethodBase.addRequestHeader(Header)
09:29:11: HttpMethodBase.addRequestHeader(Header)
09:29:11: enter HttpClient.executeMethod(HttpMethod)
09:29:11: enter
HttpClient.executeMethod(HostConfiguration,HttpMethod,HttpState)
09:29:11: Attempt number 1 to process request
09:29:11: enter HttpConnection.open()
09:29:11: Open connection to www-dev.fundacionolgatorres.org:80
09:29:11: enter HttpMethodBase.execute(HttpState, HttpConnection)
09:29:11: enter HttpMethodBase.writeRequest(HttpState, HttpConnection)
09:29:11: enter HttpMethodBase.writeRequestLine(HttpState,
HttpConnection)
09:29:11: enter HttpMethodBase.generateRequestLine(HttpConnection,
String, String, String, String)
09:29:11: >> "GET /index.php HTTP/1.1[\r][\n]"
09:29:11: enter HttpConnection.print(String)
09:29:11: enter HttpConnection.write(byte[])
09:29:11: enter HttpConnection.write(byte[], int, int)
09:29:11: enter
HttpMethodBase.writeRequestHeaders(HttpState,HttpConnection)
09:29:11: enter HttpMethodBase.addRequestHeaders(HttpState,
HttpConnection)
09:29:11: enter HttpMethodBase.addUserAgentRequestHeaders(HttpState,
HttpConnection)
09:29:11: enter HttpMethodBase.addHostRequestHeader(HttpState,
HttpConnection)
09:29:11: Adding Host request header
09:29:11: enter HttpMethodBase.addCookieRequestHeader(HttpState,
HttpConnection)
09:29:11: enter HttpState.getCookies()
09:29:11: enter CookieSpecBase.match(String, int, String, boolean,
Cookie[])
09:29:11: enter HttpMethodBase.addProxyConnectionHeader(HttpState,
HttpConnection)
09:29:11: >> "User-Agent: Mozilla/4.0[\r][\n]"
09:29:11: enter HttpConnection.print(String)
09:29:11: enter HttpConnection.write(byte[])
09:29:11: enter HttpConnection.write(byte[], int, int)
09:29:11: >> "Cookie:
PHPSESSID=23ed591387689e00636ec63a59a2248a[\r][\n]"
09:29:11: enter HttpConnection.print(String)
09:29:11: enter HttpConnection.write(byte[])
09:29:11: enter HttpConnection.write(byte[], int, int)
09:29:11: >> "Cookie: cookIdioma=2[\r][\n]"
09:29:11: enter HttpConnection.print(String)
09:29:11: enter HttpConnection.write(byte[])
09:29:11: enter HttpConnection.write(byte[], int, int)
09:29:11: >> "Host: www-dev.fundacionolgatorres.org[\r][\n]"
09:29:11: enter HttpConnection.print(String)
09:29:11: enter HttpConnection.write(byte[])
09:29:11: enter HttpConnection.write(byte[], int, int)
09:29:11: enter HttpConnection.writeLine()
09:29:11: enter HttpConnection.write(byte[])
09:29:11: enter HttpConnection.write(byte[], int, int)
09:29:11: >> "[\r][\n]"
09:29:11: enter HttpConnection.flushRequestOutputStream()
09:29:11: enter HttpMethodBase.readResponse(HttpState, HttpConnection)
09:29:11: enter HttpMethodBase.readStatusLine(HttpState, HttpConnection)
09:29:11: enter HttpConnection.readLine()
09:29:11: enter HttpParser.readLine(InputStream, String)
09:29:11: enter HttpParser.readRawLine()
09:29:11: << "HTTP/1.1 200 OK[\r][\n]"
09:29:11: enter
HttpMethodBase.readResponseHeaders(HttpState,HttpConnection)
09:29:11: enter HttpConnection.getResponseInputStream()
09:29:11: enter HeaderParser.parseHeaders(InputStream, String)
09:29:11: enter HttpParser.readLine(InputStream, String)
09:29:11: enter HttpParser.readRawLine()
09:29:11: enter HttpParser.readLine(InputStream, String)
09:29:11: enter HttpParser.readRawLine()
09:29:11: enter HttpParser.readLine(InputStream, String)
09:29:11: enter HttpParser.readRawLine()
09:29:11: enter HttpParser.readLine(InputStream, String)
09:29:11: enter HttpParser.readRawLine()
09:29:11: enter HttpParser.readLine(InputStream, String)
09:29:11: enter HttpParser.readRawLine()
09:29:11: enter HttpParser.readLine(InputStream, String)
09:29:11: enter HttpParser.readRawLine()
09:29:11: enter HttpParser.readLine(InputStream, String)
09:29:11: enter HttpParser.readRawLine()
09:29:11: enter HttpParser.readLine(InputStream, String)
09:29:11: enter HttpParser.readRawLine()
09:29:11: enter HttpParser.readLine(InputStream, String)
09:29:11: enter HttpParser.readRawLine()
09:29:11: enter HttpParser.readLine(InputStream, String)
09:29:11: enter HttpParser.readRawLine()
09:29:11: << "Date: Tue, 07 Feb 2006 08:23:39 GMT[\r][\n]"
09:29:11: << "Server: Apache[\r][\n]"
09:29:11: << "X-Powered-By: PHP/5.0.5[\r][\n]"
09:29:11: << "Set-Cookie: PHPSESSID=23ed591387689e00636ec63a59a2248a,
cookIdioma=2; path=/[\r][\n]"
09:29:11: << "Expires: Thu, 19 Nov 1981 08:52:00 GMT[\r][\n]"
09:29:11: << "Cache-Control: no-store, no-cache, must-revalidate,
post-check=0, pre-check=0[\r][\n]"
09:29:11: << "Pragma: no-cache[\r][\n]"
09:29:11: << "Transfer-Encoding: chunked[\r][\n]"
09:29:11: << "Content-Type: text/html; charset=ISO-8859-1[\r][\n]"
09:29:11: enter HttpMethodBase.processResponseHeaders(HttpState,
HttpConnection)
09:29:11: enter CookieSpecBase.parse(String, port, path, boolean,
String)
09:29:11: enter CookieSpecBase.parse(String, port, path, boolean,
Header)
09:29:11: enter HeaderElement.parseElements(char[])
09:29:11: enter Cookie(String, String, String, String, Date, boolean)
09:29:11: enter Cookie(String, String, String, String, Date, boolean)
09:29:11: enter CookieSpecBase.validate(String, port, path, boolean,
Cookie)
09:29:11: enter HttpState.addCookie(Cookie)
09:29:11: enter CookieSpecBase.formatCookie(Cookie)
09:29:11: Cookie accepted: "PHPSESSID=23ed591387689e00636ec63a59a2248a"
09:29:11: enter CookieSpecBase.validate(String, port, path, boolean,
Cookie)
09:29:11: enter HttpState.addCookie(Cookie)
09:29:11: enter CookieSpecBase.formatCookie(Cookie)
09:29:11: Cookie accepted: "cookIdioma=2"
09:29:11: enter HttpMethodBase.readResponseBody(HttpState,
HttpConnection)
09:29:11: enter HttpMethodBase.readResponseBody(HttpConnection)
09:29:11: enter HttpConnection.getResponseInputStream()
09:29:11: enter HttpMethodBase.canResponseHaveBody(int)
09:29:11: enter HeaderElement.parseElements(String)
09:29:11: enter HeaderElement.parseElements(char[])
09:29:11: enter HttpConnection.isResponseAvailable(int)
Response status code: 200
09:29:11: enter HttpState.getCookies()
Present cookies: 
09:29:11: enter CookieSpecBase.formatCookie(Cookie)
 - PHPSESSID=23ed591387689e00636ec63a59a2248a expire: false
09:29:11: enter CookieSpecBase.formatCookie(Cookie)
 - cookIdioma=2 expire: false

Request headers:
User-Agent: Mozilla/4.0
Cookie: PHPSESSID=23ed591387689e00636ec63a59a2248a
Cookie: cookIdioma=2
Host: www-dev.fundacionolgatorres.org

Response headers:
Date: Tue, 07 Feb 2006 08:23:39 GMT
Server: Apache
X-Powered-By: PHP/5.0.5
Set-Cookie: PHPSESSID=23ed591387689e00636ec63a59a2248a, cookIdioma=2;
path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
pre-check=0
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1
09:29:11: Going to buffer response body of large or unknown size. Using
getResponseBodyAsStream instead is recommended.
09:29:11: Buffering response body
09:29:11: enter HeaderParser.parseHeaders(InputStream, String)
09:29:11: enter HttpParser.readLine(InputStream, String)
09:29:11: enter HttpParser.readRawLine()
09:29:11: Resorting to protocol version default close connection policy
09:29:11: Should NOT close connection, using HTTP/1.1
09:29:11: enter HttpConnection.isResponseAvailable()
09:29:11: enter HttpConnection.releaseConnection()
09:29:11: Releasing connection back to connection manager.
09:29:11: enter getContentCharSet( Header contentheader )
09:29:11: enter HeaderElement.parseElements(String)
09:29:11: enter HeaderElement.parseElements(char[])
09:29:11: enter HeaderElement.getParameterByName(String)


And now, firefox information about same page:


Cookie Information - http://www-dev.fundacionolgatorres.org/index.php
http://www-dev.fundacionolgatorres.org/index.php
Name	PHPSESSID
Value	23ed591387689e00636ec63a59a2248a
Host	www-dev.fundacionolgatorres.org
Path	/
Secure	No
Expires	At End Of Session

Name	cookIdioma
Value	2
Host	www-dev.fundacionolgatorres.org
Path	/
Secure	No
Expires	viernes, 06 de febrero de 2009 9:34:04


And response headers:

Response Headers - http://www-dev.fundacionolgatorres.org/index.php

Date: Tue, 07 Feb 2006 08:29:31 GMT
Server: Apache
X-Powered-By: PHP/5.0.5
Set-Cookie: PHPSESSID=23ed591387689e00636ec63a59a2248a; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
pre-check=0
Pragma: no-cache
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=ISO-8859-1

200 OK



Thank a lot!!!!!
 

-----Mensaje original-----
De: Oleg Kalnichevski [mailto:olegk@apache.org] 
Enviado el: lunes, 06 de febrero de 2006 16:36
Para: HttpClient User Discussion
Asunto: RE: Persistent connections

On Mon, 2006-02-06 at 16:31 +0100, Juan Luis de Amaya Robles wrote:
> Ok,
> I change the user-agent to Mozilla:
> httpget.addRequestHeader("User-Agent","Mozilla/4.0");
> 
> And cookiePolicy:
> httpclient.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBIL
> IT
> Y);
> 
> And the next one is some trace:
> 
> Target URL: http://www-dev.fundacionolgatorres.org/index.php
> Response status code: 200
> Present cookies: 
>  - PHPSESSID=23ed591387689e00636ec63a59a2248a expire: false
>  - cookIdioma=2 expire: false
> 
> Request headers:
> 
> User-Agent: Mozilla/4.0
> Cookie: PHPSESSID=23ed591387689e00636ec63a59a2248a
> Cookie: cookIdioma=2
> Host: www-dev.fundacionolgatorres.org
> 
> Response headers:
> 
> Date: Mon, 06 Feb 2006 15:20:53 GMT
> Server: Apache
> X-Powered-By: PHP/5.0.5
> Set-Cookie: PHPSESSID=23ed591387689e00636ec63a59a2248a, cookIdioma=2; 
> path=/
> Expires: Thu, 19 Nov 1981 08:52:00 GMT
> Cache-Control: no-store, no-cache, must-revalidate, post-check=0, 
> pre-check=0
> Pragma: no-cache
> Transfer-Encoding: chunked
> Content-Type: text/html; charset=ISO-8859-1
> 
> This one returns a incorrect page.
> 
> But as i tell you before, if I remove the second cookie, The page 
> returned is ok.
> 
> Where is the error exactly in the header?
> 

I have to correct myself. The header is okay from the spec standpoint.
It is just ambiguous. The trouble is that the path attribute applies to
the last cookie only. Therefore, the path attribute of PHPSESSID is that
of the target URL which may or may not happen to be '/'. 

Post to this list a wire trace generated with a common browser and a
wire trace generated with HttpClient. I'll see what I can make out of
that information.

Oleg 


Mime
View raw message