HTTP1.0だと問題ないんですがHTTP1.1だとString line = reader.readLine();のところで固まってしまうことがあります。
www.yahoo.co.jpでは大丈夫でした。こういう場合の適切な書き方はどのようなものなんでしょうか?
private static void httptest() {
    String host = "www.google.co.jp";
    int port = 80;
    String path = "/";
    Socket socket;
    BufferedWriter writer;
    BufferedReader reader;
    try {
        socket = new Socket(host, port);
        writer = new BufferedWriter(new OutputStreamWriter(
                socket.getOutputStream()));
        writer.write("GET " + path + " HTTP/1.1\r\n");
        writer.write("Host: " + host + ":" + port + "\r\n\r\n");
        writer.flush();
        reader = new BufferedReader(new InputStreamReader(
                socket.getInputStream(), "UTF-8"));
        while (true) {
            String line = reader.readLine();
            if (line == null) {
                break;
            }
            System.out.println(line);
        }
        reader.close();
        writer.close();
        socket.close();
    } catch (Exception e) {
    }
    System.out.println("finish.");
}