我还在学习java并尝试使用套接字构建一个基本的WebServer现在我让服务器工作并将输出数据发送回浏览器,但我不确定如何发送标题我认为它们只是“\ r \ n \ r \ n“来自内容正文
这就是我当前正在写的浏览器
Socket socket = socketServer.accept();
System.out.println("Web Request From: "+socket.getInetAddress().toString());
BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream())
);
PrintWriter out = new PrintWriter(socket.getOutputStream());
Stirng output = "<!DOCTYPE html><html><body><h1>403 Forbidden</h1></body></html>"
out.write(output, 0, output.lenght());
out.flush();
out.close();
答案 0 :(得分:1)
将标题放在输出字符串中,由\r\n
彼此分隔,并由\r\n\r\n
与主体分隔。或者,PrintWriter只需逐个打印,空行,然后是正文。
答案 1 :(得分:1)
你应该看看NanoHttpd。它是一个单文件Web服务器,玩起来很有趣。他们正在发回标题,因此您应该能够非常轻松地查看他们的代码并查看他们正在做什么。
答案 2 :(得分:0)
您被迫首先发送HTTP信息
out.println("HTTP/1.0 200");
在任何其他代码发送或主体之前需要