0
node.js를 사용하여 http
서버를 구축 중이며 잘못된 요청으로 html
페이지를 보내려고합니다. 당신이 볼 수 있듯이 파일을 열 수없는 경우잘못된 요청 인 node.js에 대한 html 페이지 보내기
function respond(request, socket) {
console.log("Request for " + request["url"] + ".");
fs.readFile(request["url"], request["encoding"], function(error, file) {
if(error) {
console.log(error);
writeHead(socket,request["version"],404,"text/html",null);
socket.write(notFound(request["url"]));
socket.end();
} else {
fs.stat(request["url"],function (err,stats) {
writeHead(socket,request,200,stats)
socket.write(file, request["encoding"]);
socket.end();
});
}
});
}
function notFound(url) {
return "<html> \
<head> \
<title>404 Not Found</title> \
</head> \
<body> \
<h1>Not Found</h1> \
<p>The requested URL " + url + " was not found on this server.</p> \
<hr> \
<address>EX4 Server</address> \
</body> \
</html>"
}
function writeHead(socket, request, code, stats) {
socket.write(request["version"] + " " + code + " " + "\r\n");
socket.write("Date: " + getDate() + "\r\n");
if (stats != null) {
socket.write("Content-Length: " + stats.size + "\r\n");
socket.write("Last-Modified: " + stats.mtime + "\r\n");
}
socket.write("Server: EX4" + "\r\n");
socket.write("Content-Type: " + request["contentType"] + "\r\n");
socket.write("\r\n");
return;
}
, 나는 항상 \r\n\r\n
로 끝나는 writeHead()
를 호출 한 후 나는 HTML 페이지를 보내 : 여기에 내 코드입니다.
그러나 브라우저에서 전체 응답 (헤더 + 본문) (Chrome이 중요한 경우)이 표시됩니다.
왜 'http'모듈을 사용하지 않습니까? –