diff --git a/README.md b/README.md index 08b52d7..349a6b7 100644 --- a/README.md +++ b/README.md @@ -35,8 +35,13 @@ En vous aidant de la spécification ou de Wikipedia. Coté requête : -Quel est le rôle de la première ligne ? +Quel est le rôle de la première ligne ? ( GET / HTTP/1.1 ): +Càd on a demandé les resources sur la racine de example.com avec la version HTTP 1.1 + Décrivez le rôle des options : “Accept-Encoding:”, “Accept:” et “Connection: keep-alive” ? + +Accept-Encoding + Coté serveur : Décrire la première ligne. A quoi sert le code de réponse ? diff --git a/src/main/java/fr/istic/pr/ping/HttpPing.java b/src/main/java/fr/istic/pr/ping/HttpPing.java new file mode 100644 index 0000000..f29e167 --- /dev/null +++ b/src/main/java/fr/istic/pr/ping/HttpPing.java @@ -0,0 +1,54 @@ +package fr.istic.pr.ping; + +import java.io.IOException; +import java.io.PrintWriter; +import java.net.Socket; +import java.net.UnknownHostException; + +public class HttpPing { + + public static class PingInfo { + //Le temps de réponse : + long time; + //Le code de réponse : + int code; + + @Override + public String toString() { + return String.format("[code %d -- %d ms]", code, time); + } + } + + public static void main(String[] args) throws UnknownHostException, IOException, InterruptedException { + System.out.println(ping("www.example.com", 80)); + + } + + public static PingInfo ping(String host, int port) throws UnknownHostException, IOException { + PingInfo info = new PingInfo(); + + long time = System.currentTimeMillis(); + + Socket socket = new Socket(host, port); + PrintWriter out = new ... + // UTILISER PrintWriter et BufferedReader + + /// Envoyer l'entête + // Penser à préciser l'Host dans l'en-tête + + // L'en-tête doit également contenir : + out.println("Connection: close"); //demande au site de fermer la connexion après la réponse. + // et se terminier par l'envoie d'une ligne vide sans espace + + + // LECTURE DE LA REPONSE + + //info.code = utiliser split sur la première ligne pour parser le code + + //AFFICHAGE DE LA PAGE + + info.time = System.currentTimeMillis() - time; + return info; + } + +} \ No newline at end of file