https, http2
기초/HTTP2021. 10. 19. 22:05
https
https는 웹 서버에 SSL 암호화를 추가하는 모듈이다.
개인 정보 보호에 대한 관심이 높아짐에 따라, https 적용이 필수가 되었다.
https가 적용되면 구글 크롬을 기준으로, 아래 이미지처럼 주소창 옆에 자물쇠 아이콘이 뜬다.
요청을 보낼 때 헤더에 너무 많은 정보가 자세하게 드러나게 된다. 쿠키값, 쿼리스트링 등...
이런 중요한 정보들이 탈취가 되는 경우를 대비하기 위해서 https를 사용하여 오고 가는 데이터를 암호화한다.
const http = require("http");
const fs = require("fs").promises;
http
.createServer((req, res) => {
res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
res.write("<h1>Hello, Node.</h1>");
res.write("<p>Hello server</p>");
res.end("<p>Hello doodoo</p>");
})
.listen(8080, () => {
console.log("8080번 포트에서 서버 대기 중입니다.");
});
위와 같은 기존 http서버에 cert, key, ca와 같은 인수를 추가하면...
const https = require("https");
const fs = require("fs");
https
.createServer(
{
cert: fs.readFileSync("도메인 인증서 경로"),
key: fs.readFileSync("도메인 비밀키 경로"),
ca: [
fs.readFileSync("상위 인증서 경로"),
fs.readFileSync("상위 인증서 경로"),
],
},
(req, res) => {
res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
res.write("<h1>Hello Node!</h1>");
res.end("<p>Hello Server!</p>");
}
)
.listen(443, () => {
console.log("443번 포트에서 서버 대기 중입니다!");
});
이렇게 https 서버로 만들 수 있다.
(포트넘버는 반드시 443이어야 하는 것은 아니지만~ 443이어야만 생략이 가능하다)
물론 아무렇게나 만들 수 있는 것은 아니고,
공식 인증기관(letsencrypt 등)에서 별도의 인증서를 발급받는 과정이 필요하다.
http2
SSL암호화와 더불어, 최신 HTTP 프로토콜인 http/2를 사용하는 모듈이다. (현재는 3까지 나옴)
→ 동시성을 높여 요청 및 응답 방식 및 웹의 속도가 기존 http/1.1보다 개선되었음
'기초 > HTTP' 카테고리의 다른 글
HTTP Expires:0은 모든 브라우저에서 즉시 만료를 보장하지 않는다 (0) | 2023.05.30 |
---|---|
세션 (0) | 2021.10.19 |
쿠키 (0) | 2021.10.14 |
댓글()