Node.js

[Do it_Node.js] HTTP 모듈 이해하고 서버 만들기

colin2 2024. 6. 3. 09:49

 

2024.05.30 - [Node.js] - [Do it_Node.js] 자바스크립트 동기/비동기_콜백함수, 프라미스, async/await

 

[HTTP 이해하기]

 

HTTP 프로토콜: 클라이언트와 서버 간에 미리 약속한 규칙.

 

HTTP 요청: 클라이언트에서 서버로 자료를 요청하는 것.

HTTP 응답: 서버에서 응답해 클라이언트로 자료를 보내는 것.

 

요청 URL: 서버에게 어떤 정보를 보내 달라고 요구하는 URL.

 

요청 메서드(요청 방식): 클라이언트에서 서버로 정보를 보내면서 그 정보를 처리할 방식을 알려주는 것.

 

GET 메서드
서버에서 정보를 가져올 때 사용. 예를 들어 구글 웹 사이트 URL을 입력해 서버로 보내거나 웹 사이트에 있는 링크를 클릭하면 GET 요청이 서버로 전송되고, 서버는 해당 URL의 문서를 응답으로 반환.
POST 메서드
서버에 데이터를 저장할 때 사용. 예를 들어 회원 가입을 하거나 로그인할 때 사용자가 입력한 정보는 POST 메서드를 사용해 서버로 넘김.
PUT 메서드
서버에 있는 데이터를 수정(업데이트)할 때 사용. 예를 들어 서버에 이미 저장되어 있는 사용자 정보에서 일부를 수정할 때 PUT 메서드를 사용해 서버로 보냄.
DELETE 메서드
서버에서 데이터를 삭제할 때 사용. 예를 들어 블로그 글이나 파일을 삭제할 때 DELETE 메서드를 사용해 삭제할 정보를 서버로 전송.

상태 코드: 클라이언트에서 보낸 요청이 성공했는지 여부를 알려주는 세 자리 숫자 코드.

1xx
Informational
계속 처리 중
2xx
Successful
요청 성공
200
OK
요청이 성공적으로 처리되었습니다.
201
Created
요청이 성공적으로 처리되어 새로운 자료가 생성되었습니다.
204
No Content
요청이 성공적으로 처리되었지만 응다으로 반환할 내용이 없습니다.
3xx
Redirection
다른 위치로 이동
301
Moved Permanently
요청한 데이터가 새 URL로 옮겨졌습니다.
4xx
Client Error
클라이언트 오류
400
Bad Request
클라이언트 요청이 잘못되었거나 유효하지 않습니다.
401
Unauthorized
권한이 없어 거절되었지만 인증을 다시 시도할 수 있습니다.
403
Forbidden
권한이 없어 거절되었고 인증을 시도하면 계속 거절됩니다.
404
Not Found
해당 데이터를 찾을 수 없습니다.
5xx
Server Error
서버 오류
500
Internal Server Error
서버에 요청을 처리하는 동안 오류가 발생했습니다.
503
Service Unavailable
요청한 서비스를 이용할 수 없습니다.

 

원격 주소: 인터넷에서 서버에 접속하는 실제 주소인 IP 주소와 포트.

 

소켓: 클라이언트와 서버 사이에 데이터를 주고 받는 통로.

예) 온라인 구매

택배 차량(소켓), 물건 받는 사람의 주소 (IP 주소), 정확한 집의 호수(포트)

출처 입력

IP 주소(Internet Protocol 주소): 수많은 클라이언트 컴퓨터와 서버 컴퓨터를 구별하기 위해 할당된 주소.

도메인: 사용자가 기억하기 쉬운 사이트 주소.

DNS 서버: 도메인 이름을 IP 주소로 변환해 주는 서버.

포트: 클라이언트에서 서버로 정보를 요청했을 때 서버에 있는 프로그램 중에서 어떤 프로그램을 실행할 것인지 알려줄 때 사용. 네트워크를 통해 넘겨받은 자료를 정확히 어느 위치로 배달할 것인지 정해 주는 역할.

 

번호
기능
20, 21
FTP(파일 전송 프로토콜)
25
SMTP(이메일 발송)
53
DNS 서버
80
웹(HTTP)
110
POP3(이메일 수신)
443
HTTPS

 

[HTTP 모듈로 서버 만들기]

 

서버 만들기

const http = require("http");

// createServer 함수 - 서버 만들기
const server = http.createServer((req, res) => {
    console.log("요청 발생");
});

// listen 함수 - 서버 실행하기
server.listen(3000, () => {
    console.log("3000번 포트에서 서버 실행 중");
});
 

 

터미널 창 열기 : Ctrl + Shift + `

 

터미널에서 현재 폴더 위치로 이동하여 서버 실행 : node 파일이름

 

요청이 없이 서버만 실행을 했을 때는 listen 함수의 결과만 찍히게 된다.

 

url에서 3000번 포트로 요청을 보내면 "요청 발생"이라는 결과까지 확인할 수 있다.

 

서버 종료하기 : Ctrl + C