Java构建基本WebServer如何将标头发送到浏览器

时间:2013-03-23 13:36:00

标签: java http

我还在学习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();

3 个答案:

答案 0 :(得分:1)

将标题放在输出字符串中,由\r\n彼此分隔,并由\r\n\r\n与主体分隔。或者,PrintWriter只需逐个打印,空行,然后是正文。

答案 1 :(得分:1)

你应该看看NanoHttpd。它是一个单文件Web服务器,玩起来很有趣。他们正在发回标题,因此您应该能够非常轻松地查看他们的代码并查看他们正在做什么。

答案 2 :(得分:0)

您被迫首先发送HTTP信息

out.println("HTTP/1.0 200"); 
在任何其他代码发送或主体

之前需要