为什么 HTML 服务器返回的页面未在浏览器中呈现

why HTML page retured by server is not rendering in the browser

我创建了一个简单的 HTTP 服务器(目前它只支持 GET),每当发出 GET 请求时,它 returns 一个 HTML 页面,但返回的 HTML 页面不在浏览器中呈现,我验证了我的服务器确实在使用 CURL 工作并且 CURL 能够获取数据。代码可以在下面找到

GITHUB_LINK

下面是 curl 的输出,您可以看到服务器正在返回 HTML 页面。

$ curl -G "192.168.1.188:8080" --verbose
* Rebuilt URL to: 192.168.1.188:8080/
* Hostname was NOT found in DNS cache
*   Trying 192.168.1.188...
* Connected to 192.168.1.188 (192.168.1.188) port 8080 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: 192.168.1.188:8080
> Accept: */*
> 
< HTTP/1.1 200 OK
<  Content-type: text/html
<  
< <!DOCTYPE html> 
<  <html>
<  <head> 
<  <title>simple server</title> 
<  </head> 
<   <body>
<   <h1>Welcome</h1>
<  <p>Welcome to the server .</p>
<   </body>
<  </html>
* Connection #0 to host 192.168.1.188 left intact

在发送 HTML 页面之前,您需要向浏览器发送一些 headers。仅发送文件的内容是不够的。在文档 https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages#HTTP_Responses

上检查响应的结构

尝试从工作 web-server 访问页面,在浏览器中查找 headers 结构(使用浏览器的开发工具)并用您的代码复制它。