Ce forum est maintenant fermé, seule cette archive statique reste consultable.
Bas de page
Auteur Sujet :

Thumbweb Java

n°73872
Johnny Boy
I don't know, Google it.
Posté le 24-03-2013 à 13:14:36  
 

Bonjour,
 
Ayant du faire un petit projet pour le cours de réseau, je viens pour une petite question.
 
Voici les exigence du prof :  
 

Citation :

Your goal is to implement a simple gateway that dumps information about HTML content requested by clients, using the HTTP client implementation provided by Java (i.e. through java.net.URL.getConnection()):
 

Code :
  1. java ThumbWeb {http-url}


starts the program, which
 
listens on TCP port 80xx where xx is your group number
for each URL, starting with the one provided on the command-line:
retrieves content from the given URL
extracts the value of the Expires: HTTP header.
tests whether content-type is text/html
if so, prints on standard output the document’s title, the URL of the favicon if any, and the Expires date, on 3 separated lines, followed by a blank line.
each new connection on port 80xx is expected to send exactly one URL to process, followed by a CRLF sequence. ThumbWeb acknowledges processing of the URL by closing the connection to the client after corresponding information has been printed on stdout.
You’re suggested to use telnet as client for your gateway.


 
Mon problème est ce "Expires" comme surligné.
 
Mon serveur me renvoie ceci :
 

Citation :

Entrez une URL (sans le http://) :  
www.9gag.com
9GAG - Just for Fun!
//d24w6bsrhbeh9d.cloudfront.net/static/main/core/20130208_1360298583/img/favicon_v2.png
Thu Nov 19 09:52:00 CET 1981


 
Mais l'heure et la date sont toujours foireux et ce, peu importe le site et je ne comprend pas pourquoi... ou alors c'est un brol qui est absent des sites...
 
Voici le bout de code utilisé pour cette fonction :
 

Code :
  1. String contentType= connection.getContentType();
  2.            String result = "";
  3.            if (contentType.toLowerCase().contains("text/html" )){
  4.             result = xpath.evaluate("//title",doc);
  5.             result += "\n" + xpath.evaluate("/html/head/link[@rel=\"shortcut icon\"]/@href",doc);
  6. //             result += "\n" + connection.getExpiration();
  7.             result += "\n" + new Date(connection.getExpiration());
  8.             result += "\n";
  9.            }
  10.            else{
  11.             result = "Content type is not text/html";
  12.            }
  13.            System.out.println(result);
  14.            outToClient.writeBytes(result);
  15.         }


 
Quelqu'un a une idée? :)


---------------
New Matbe --> www.iwyt.net <-- New Matbe
 
Yippee-ki-yay, motherf*cker.
mood
Pub
Posté le 24-03-2013 à 13:14:36  
 

n°73873
LostSoul
Belgian Beer Forever (en slip)
Posté le 24-03-2013 à 13:23:21  
 

Demande à lesk8, c'est lui qui fait du java :whistle:
Sinon le expires ça peut contenir autre chose qu'une date malheureusement.  
Par exemple ça peut contenir 0 ...
En Java tu devrais avoir des fonctions statiques TryParse() ou un truc du genre dans chaque type (ça existe en .NET donc ...)
En plus les dates peuvent être dans des formats farfelus donc faut voir si t'as pas une fonction genre GetUTCDate()
 


---------------
Le cheval, c'est bon, mangez-en!  
[ www.in-wonderland.net | www.start64.com | www.majorgeeks.com | updt-bdnq ]
n°73874
DoWnR
Bite my shiny metal ass!
Posté le 24-03-2013 à 13:39:37  
 

avec le serveur web du boulot qui n'est pas hébergé chez nous l'"expires" est bon mais pas avec ceux qu'on héberge nous-mêmes qui ont aussi une date en 1981 :D  
 
l'ai juste fait en vitesse avec wget :
 

xxx@yyy:~> wget --server-response --spider http://www.cenaero.be
Spider mode enabled. Check if remote file exists.
--2013-03-24 13:37:13--  http://www.cenaero.be/
Resolving www.cenaero.be (www.cenaero.be)... 194.88.108.68
Connecting to www.cenaero.be (www.cenaero.be)|194.88.108.68|:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Date: Sun, 24 Mar 2013 12:37:13 GMT
  Server: Microsoft-IIS/6.0
  X-Powered-By: ASP.NET
  Pragma: no-cache
  cache-control: no-store
  Pragma: no-cache
  cache-control: no-store
  Content-Length: 63046
  Content-Type: text/html
  Expires: Sun, 24 Mar 2013 12:36:13 GMT
  Cache-control: private
  Set-Cookie: SMI%5FBackOffice=langue=FR; path=/
  Set-Cookie: ASPSESSIONIDCCQDDSAB=KBMMLAGDBEPNPMGLJDDFJDCN; path=/
  cookieheader: P3P: CP=NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM
  Vary: User-Agent
  Connection: close
Length: 63046 (62K) [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.


---------------
"Fuck it all, no regrets, I'm staying in and you can bet it sucks outside in the pouring rain, I'll smoke some pot, fry my brain!"
n°73875
LostSoul
Belgian Beer Forever (en slip)
Posté le 24-03-2013 à 13:47:46  
 

Tiens Cenaero ... j'ai un collègue qui bossait chez eux :whistle:
 
Sinon web developer affiche ça pour un des trucs du boulot
 

Citation :

Cache-Control: no-cache
 
Pragma: no-cache
 
Content-Type: text/html; charset=utf-8
 
Content-Encoding: gzip
 
Expires: -1
 
Vary: Accept-Encoding
 
Server: Microsoft-IIS/7.5
 
x-frame-options: DENY
 
X-AspNet-Version: 2.0.50727
 
X-Powered-By: ASP.NET
 
Date: Sun, 24 Mar 2013 12:48:47 GMT
 
Content-Length: 1294

Message cité 1 fois
Message édité par LostSoul le 24-03-2013 à 13:50:30

---------------
Le cheval, c'est bon, mangez-en!  
[ www.in-wonderland.net | www.start64.com | www.majorgeeks.com | updt-bdnq ]
n°73876
lesk8vainc​ra
snowboarder
Posté le 24-03-2013 à 14:05:25  
 

J'imagine que le format de date est pas le même? avec new Date(xxx) tu prends la date a laquelle il se serait écoulé xxx mili seconde depuis le 1/1/1970. Suffit que le site utilise, disons, le nombre de secondes écoulées depuis le 1/1/1950 et t'as 20 ans de différence en chopant la date :D.
 
sinon

Citation :

The expiration time of an entity MAY be specified by the origin server using the Expires header (see section 14.21). Alternatively, it MAY be specified using the max-age directive in a response. When the max-age cache-control directive is present in a cached response, the response is stale if its current age is greater than the age value given (in seconds) at the time of a new request for that resource. The max-age directive on a response implies that the response is cacheable (i.e., "public" ) unless some other, more restrictive cache directive is also present.
 
If a response includes both an Expires header and a max-age directive, the max-age directive overrides the Expires header, even if the Expires header is more restrictive. This rule allows an origin server to provide, for a given response, a longer expiration time to an HTTP/1.1 (or later) cache than to an HTTP/1.0 cache. This might be useful if certain HTTP/1.0 caches improperly calculate ages or expiration times, perhaps due to desynchronized clocks.


---------------
Quand les gens sont de mon avis, j'ai toujours le sentiment de m'être trompé
n°73877
DoWnR
Bite my shiny metal ass!
Posté le 24-03-2013 à 14:32:49  
 

LostSoul a écrit :

Tiens Cenaero ... j'ai un collègue qui bossait chez eux :whistle:
 
Sinon web developer affiche ça pour un des trucs du boulot
 

Citation :

Cache-Control: no-cache
 
Pragma: no-cache
 
Content-Type: text/html; charset=utf-8
 
Content-Encoding: gzip
 
Expires: -1
 
Vary: Accept-Encoding
 
Server: Microsoft-IIS/7.5
 
x-frame-options: DENY
 
X-AspNet-Version: 2.0.50727
 
X-Powered-By: ASP.NET
 
Date: Sun, 24 Mar 2013 12:48:47 GMT
 
Content-Length: 1294



 
mmh, ça ne serait pas un certain Jordan ?


---------------
"Fuck it all, no regrets, I'm staying in and you can bet it sucks outside in the pouring rain, I'll smoke some pot, fry my brain!"
n°73878
LostSoul
Belgian Beer Forever (en slip)
Posté le 24-03-2013 à 14:39:56  
 

Sisi, c'est le Docteur Goblet :sol:


---------------
Le cheval, c'est bon, mangez-en!  
[ www.in-wonderland.net | www.start64.com | www.majorgeeks.com | updt-bdnq ]
n°73879
DoWnR
Bite my shiny metal ass!
Posté le 24-03-2013 à 15:00:45  
 

:lol:
 
J'étais même à l'école secondaire avec lui à Floreffe, ça fait un bout de temps que je ne l'ai pas croisé. À l'occasion, remets lui le bonjour de la part de Laurent.


---------------
"Fuck it all, no regrets, I'm staying in and you can bet it sucks outside in the pouring rain, I'll smoke some pot, fry my brain!"
n°73880
Johnny Boy
I don't know, Google it.
Posté le 24-03-2013 à 15:12:58  
 

lesk8vaincra a écrit :

J'imagine que le format de date est pas le même? avec new Date(xxx) tu prends la date a laquelle il se serait écoulé xxx mili seconde depuis le 1/1/1970. Suffit que le site utilise, disons, le nombre de secondes écoulées depuis le 1/1/1950 et t'as 20 ans de différence en chopant la date :D.
 
sinon

Citation :

The expiration time of an entity MAY be specified by the origin server using the Expires header (see section 14.21). Alternatively, it MAY be specified using the max-age directive in a response. When the max-age cache-control directive is present in a cached response, the response is stale if its current age is greater than the age value given (in seconds) at the time of a new request for that resource. The max-age directive on a response implies that the response is cacheable (i.e., "public" ) unless some other, more restrictive cache directive is also present.
 
If a response includes both an Expires header and a max-age directive, the max-age directive overrides the Expires header, even if the Expires header is more restrictive. This rule allows an origin server to provide, for a given response, a longer expiration time to an HTTP/1.1 (or later) cache than to an HTTP/1.0 cache. This might be useful if certain HTTP/1.0 caches improperly calculate ages or expiration times, perhaps due to desynchronized clocks.



Mouais donc en gros c'est bon, c'est juste que le header ne renvoi pas forcément le bon truc...


---------------
New Matbe --> www.iwyt.net <-- New Matbe
 
Yippee-ki-yay, motherf*cker.
n°73881
LostSoul
Belgian Beer Forever (en slip)
Posté le 24-03-2013 à 15:15:20  
 

DoWnR a écrit :

:lol:
 
J'étais même à l'école secondaire avec lui à Floreffe, ça fait un bout de temps que je ne l'ai pas croisé. À l'occasion, remets lui le bonjour de la part de Laurent.


 
J'essayerai d'y songer mais juste Laurent il risque de confondre non? (Avec The El :sol:)


---------------
Le cheval, c'est bon, mangez-en!  
[ www.in-wonderland.net | www.start64.com | www.majorgeeks.com | updt-bdnq ]