(생활 코딩 node.js 14~19.1)
var url = require('url'); //url 모듈 사용
var _url = request.url; //url 값이 들어간다.
console.log(url.parse(_url, true)); //주어진 url 정보를 분석
<실행 결과>
Url {
protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?id=CSS',
query: [Object: null prototype] { id: 'CSS' },
pathname: '/',
path: '/?id=CSS',
href: '/?id=CSS'
}
var http = require('http');
var fs = require('fs');
var url = require('url'); //url 모듈 사용
var app = http.createServer(function(request,response){
var _url = request.url; //url 값이 들어간다.
var queryData = url.parse(_url, true).query;
var pathname = url.parse(_url, true).pathname;
var title = queryData.id;
if (pathname === '/') { //루트라면
fs.readFile(`data/${queryData.id}`, 'utf8', function(err, description){ //불러온 내용을 description에 저장하는 것 같음
var template = `
<!doctype html>
<html>
<head>
<title>WEB1 - ${title}</title>
<meta charset="utf-8">
</head>
<body>
<h1><a href="/">WEB</a></h1>
<ol>
<li><a href="/?id=HTML">HTML</a></li>
<li><a href="/?id=CSS">CSS</a></li>
<li><a href="/?id=JavaScript">JavaScript</a></li>
</ol>
<h2>${title}</h2>
<p>${description}</p>
</body>
</html>
`;
response.writeHead(200); //파일을 성공적으로 전송
response.end(template);
})
} else { //쿼리 스트링의 값이
response.writeHead(404); //파일을 찾을 수 없음
response.end('Not found');
}
});
이 때 (http://localhost:3000/fffffffffff) 주소로 접근하면 not found가 출력된다.
간단하게 알아보기
자주 볼 수 있는 상태 코드
400 Bad Request (잘못된 요청)
잘못된 문법으로 인해 서버가 요청을 이해할 수 없는 경우.
403 Forbidden (거부됨)
클라이언트가 콘텐츠에 접근할 권리를 가지고 있지 않을 경우. 한 웹 서비스의 일반 유저가 어드민 페이지에 접속을 시도한다거나, 특정 IP나 국가가 차단되어 있는 사이트에 접속을 시도할 때 이를 거절하기 위한 응답.
404 Not Found (찾을 수 없음)
서버가 요청받은 리소스를 찾을 수 없는 경우. ‘서버를 찾을 수 없다’는 게 아니라, 서버와 통신은 되지만 요청한 바를 찾을 수 없다는 뜻.
500 Internal Server Error (내부 서버 에러)
서버가 처리 방법을 모르는 상황과 마주쳤지만, 서버가 처리 방법을 알 수 없을 경우. 서버에 오류가 발생해 작업을 수행할 수 없을 때 나타나는 코드.
502 Bad Gateway (불량 게이트웨이)
서버가 요청을 처리하는 데 필요한 응답을 얻기 위해 게이트웨이로 작업하는 동안 잘못된 응답을 받았다는 뜻. > 보통 서버에 접속하는 사람이 많을 때!
503 Service Unavailable (일시적으로 이용할 수 없음)
서버가 요청을 처리할 준비가 되지 않았음. 보통은 유지보수를 위해 작동을 중단했거나 과부하 상태가 된 서버로 인해 발생하는 코드.
504 Gateway Timeout (게이트웨이 시간 초과)
게이트웨이가 연결된 서버로부터 응답을 적절한 시간 내에 받을 수 없었다는 뜻.