diff --git a/Main.java b/Main.java index 4570b5b..8726425 100644 --- a/Main.java +++ b/Main.java @@ -4,6 +4,9 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; @@ -33,6 +36,7 @@ public class Main { } String request = requestBuilder.toString(); // System.out.println(request); + // PARSE THE REQUEST String[] requestLines = request.split("\r\n"); String[] requestLine = requestLines[0].split(" "); String method = requestLine[0]; @@ -52,14 +56,41 @@ public class Main { method, path, version, host, headers.toString()); System.out.println(accessLog); + Path filepath = getFilePath(path); + if (Files.exists(filepath)) { + // file exist + String contentType = guessContentType(filepath); + sendResponse(client, "200 OK", contentType, Files.readAllBytes(filepath)); + } else { + // 404 + byte[] notFoundContent = "