如何通过简单地将字符串写入套接字来设置/格式化HTTP标头

Zug*_*dud 0 java http

只是使用核心Java API我试图用正确格式化的HTTP标头发送响应.使用我当前的代码,我可以看到客户端收到我的回复,但我认为我没有包含所有信息,因为当我向Web浏览器客户端返回404错误时,Web浏览器只显示一个空白页面.如果我尝试卷曲,我也没有看到卷曲让我知道错误.以下是我目前正在做的回应:

outputStream.write("HTTP/1.1 404 Not Found".getBytes());

Raj*_*ani 5

HTTP响应由三部分组成

  1. 初始状态行,即您发送的内容
  2. 响应报头(与像响应头Content-Type,Content-Length,Last-Modified,Cookie,等等)
  3. 响应主体 - (具有用户友好内容的实际HTML,告诉用户发生了什么.

你只发送第一个.

你应该发送的一个例子是

HTTP/1.1 404 Not Found
Date: Fri, 18 Aug 2012 13:24:45 GMT
Content-Type: text/HTML
Content-Length: 90

<html><head><title>Page not found</title></head><body>The page was not found.</body></html>
Run Code Online (Sandbox Code Playgroud)

另外,不要忘记在最后关闭插座.

此页面以易于理解的方式描述HTTP响应.

编辑

重要的是要注意响应中的每一行必须由CRLF字符分隔.所以你也应该在打电话之前写\ r \n来代表每个换行符getBytes().