본문 바로가기
Web/Nodejs

[Node.js] http 라이브러리 - 웹 서버 동작하기!

by coding-choonsik 2023. 4. 30.
728x90
반응형
SMALL

1. http 라이브러리 

  • 웹사이트 동작 서비스를 해줄 수 있는 라이브러리
  • HTTP 요청을 받고 응답할 수 있음

 

1-1. 라이브러리 불러오기

const http = require('http')

2.  createServer() 

  • 콜백함수임
  • 리턴객체 순서(requests(HTTP 요청과 관련된 정보), response(HTTP 응답을 만들기 위한 메서드와 속성을 제공))
const server = http.createServer((req, res) =>{
    console.log('서버가 동작중입니다!')
    console.log(req.headers)  
    console.log(req.method)  // GET
    console.log(req.url)  // '/': root정보, localhost:8080 이라고 쳤을 때
 
server.listen(9090);


3. req.url

  • Node.js에서 HTTP 요청 객체(request 객체)의 속성 중 하나로, 클라이언트가 요청한 URL 경로
  • 예를 들어, http://example.com/about URL에 대한 요청이 있을 때, req.url은 /about 문자열을 반환
  •  req.url 값을 기반으로 서버에서 다른 페이지를 렌더링하거나, 요청된 파일의 경로를 확인할 수 있음

 

4. res.setHeader(key, value)

  • HTTP 응답 객체(response 객체)의 메서드 중 하나로, 응답 헤더를 설정하는 데 사용
  • 응답 헤더는 클라이언트와 서버 간에 교환되는 메타데이터로, 클라이언트가을 처리하는 방법을 결정
  • res.setHeader('Content-Type', 'text/html') 코드를 사용하여 Content-Type 헤더를 설정하고,  서버에서 반환하는 내용은 HTML 형식의 텍스트임

 

📄 1) "/"로 접근했을 때 나올 index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>welcome!</title>
</head>
<body>
    <h2>nodejs로 만든 첫번째 웹 사이트!😝</h2>
</body>
</html>

📄 2) "/mypage"로 접근했을 때 나올 mypage.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>마이페이지</title>
</head>
<body>
    <h2>마이페이지</h2>
    <p>저는 ....</p>
</body>
</html>

📄 3) 그 외 다른 문자열의 url 접근했을 때 나올 not-found.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Not Found</title>
</head>
<body>
    <h2>😥Not Found</h2>
</body>
</html>

 

✅ url로 접근하여 확인해보기!

const http = require('http')
const fs = require('fs')

// 서버생성
const server = http.createServer((req, res) =>{
    console.log('서버가 동작중입니다!')
    console.log(req.headers)  
    console.log(req.method)  // GET
    console.log(req.url)  // '/': root정보, localhost:8080 이라고 쳤을 때
	
    // url : /mypage 등의 문자열
    const url = req.url
   
    //헤더 설정
    res.setHeader('Content-Type', 'text/html')
    if(url === '/'){
        fs.createReadStream('./html/index.html').pipe(res)  // 서버로 해당 html을 읽어오고 res객체를 사용자쪽으로 출력해
    }else if(url === '/mypage'){
        fs.createReadStream('./html/mypage.html').pipe(res)
    }else{
        fs.createReadStream('./html/not-found.html').pipe(res)
    }

})

server.listen(9090);

 

 

 

▲ index.html

 

▲ mypage.html

 

 

▲ not-found.html

 

 

728x90
반응형
LIST