const http = require('http');
const fs = require('fs').promises;
http.createServer(async (req, res) => {
try {
const data = await fs.readFile('./server2.html');
res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
res.end(data);
} catch (err){
console.error(err);
res.writeHead(500, {'Content-Type': 'text/html; charset=utf-8'});
res.end(err.message);
}
})
.listen(8081, () => {
console.log('8081번 포트에서 서버 대기 중입니다.');
})
위 코드에서 서버에 접속하려면
- http://localhost:8081
- http://127.0.0.1:8081
으로 접속하면 된다.
localhost는 현재 컴퓨터의 내부 주소를 가리킵니다.
외부에서는 접근할 수 없고 자신의 컴퓨터에서만 접근할 수 있으므로, 서버 개발 시 테스트용으로 많이 사용됩니다.
localhost 대신 127.0.0.1 을 주소로 사용해도 같습니다. 이러한 주소를 IP주소 (Internet Protocol) 라고도 부릅니다.
주소와 메서드만 보고 요청의 내용을 알아볼 수 있다는 것이 장점
HTTP통신을 사용하면 클라이언트가 누구든 상관없이 같은 방식으로 서버와 소통할 수 있다.
클라이언트에서 보내는 요청에는 한 가지 큰 단점이 있습니다 => 누가 요청을 보내는지 모른다는 것
웹 사이트에 방문해서 로그인을 할 때 내부적으로 쿠키와 세션을 사용하고 있다.
서버는 요청에 대한 응답을 할 때 쿠키라는 것을 같이 보낸다.
쿠키는 유효기간이 있으며 name=zerocho와 같이 단순한 '키-값'의 쌍입니다.
서버로부터 쿠키가 오면 웹 브라우저는 쿠키를 저장해두었다가 다음에 요청할 때마다 쿠키를 동봉해서 보냅니다.
서버는 요청에 들어 있는 쿠키를 읽어서 사용자가 누구인지 파악합니다.
즉, 서버는 미리 클라이언트에 요청자를 추정할 만한 정보를 쿠키로 만들어 보내고, 그 다음부터는 클라이언트로부터 쿠키를 받아 요청자를 파악합니다.
쿠키는 요청의 헤어(Cookie)에 담겨 전송됩니다.
브라우저는 응답의 헤더 (Set-Cookie)에 따라 쿠키를 저장합니다.
const myCookie = 'name=KIM;year=1995;age=28;LostArk=GODGame;IWantToMakeTheLightThatSavesTheWorld30=Today I take the light that saves the world 2 card';
const parseCookies = (cookie = '') =>
cookie
.split(';')
.map(v => v.split('='))
.reduce((acc, [k, v]) => {
acc[k.trim()] = decodeURIComponent(v);
return acc;
}, {});
const returnCookie = parseCookies(myCookie);
console.log('쿠키 : ', returnCookie);
- 쿠키는 name=KIM;year=1995 처럼 문자열 형식으로 존재합니다.
- 쿠키 간에는 세미콜론으로 구분됩니다.
https 모듈은 웹 서버에 SSL 암호화를 추가한 것