HTTP 프로토콜 : 사용하는 언어가 다른 클라이언트와 서버 간 똑같이 인식할 수 있도록 약속한 규칙
-요청(request) : 클라이언트에서 서버로 자료를 요청하는 것
1) 헤더 : 사이트 주소
2) 본문 : 사용하는 시스템 정보, 웹 브라우저 정보, 사용 언어 등
-응답(response) : 서버에서 클라이언트로 자료를 보내 응답하는 것
1) 헤더 : 브라우저 창에 보여줄 내용(텍스트, 이미지 등)
2) 본문 : 파일 형식, 인코딩 등 파일과 관련된 기타 정보
요청 URL : 클라이언트가 서버에게 어떤 정보를 보내달라고 요구하는 URL
요청 메서드 : 서버에 보낸 정보를 어떻게 처리할 것인지 알려줌
-GET : 서버에서 정보를 가져옴
-POST : 서버에 데이터를 저장
-PUT : 서버에 있는 데이터를 수정
-DELETE : 서버에 데이터를 삭제
상태 코드 : 클라이언트에서 보낸 요청이 성공했는 지 여부를 알려주는 세 자리 코드
ex) 1xx, 2xx, 3xx, 4xx, 5xx
원격 주소 : IP 주소와 포트를 합친 주소 (ex) 172.217.161.228:443)
-IP 주소 : 클라이언트와 서버의 컴퓨터를 구별하기 위해 개별적 주소 (ex) 1712.217.161.228)
-포트 : 서버에 있는 프로그램 중 어떤 프로그램을 실행할 것인지 정함 (ex) 443)
-소켓 : 클라이언트와 서버 간 테이터를 주고받는 통로
ch04 - <server.js> : 3000 포트에서 서버를 실행
※createServer([옵션][, 콜백]) : 서버를 생성하는 함수
※listen(포트[, 호스트][, 콜백]) : 서버를 실행하는 함수
const http = require("http"); //http 모듈을 가져옴
const server = http.createServer((req, res) => { //서버를 생성
console.log("request from clinet");
});
server.listen(3000, () => { //3000 포트에서 서버를 실행
console.log("3000 포트에서 서버 실행");
});
>> node server
ch04 - <server-2.js> : 본문에 "Hello Node"라 작성하고 localhost:3000 표시
※req.method : 요청 메소드를 확인하는 함수
※res.setHeader(이름, 값) : 응답 헤더를 생성하는 함수
-Content-Type: text/plain : txt 형식
※res.write(내용[, 인코딩][, 콜백]) : 응답 본문을 생성하는 함수
※res.end(내용[, 인코딩][, 콜백]) : 응답을 종료하는 함수
const http = require("http");
const server = http.createServer((req, res) => {
console.log(req.method); //요청 메서드 확인
res.setHeader("Content-Type", "text/plan"); //응답 헤더
res.write("Hello Node"); //응답 본문
res.end(); //응답 종료
});
server.listen(3000, () => {
console.log("3000 포트에서 서버 실행 중");
});
>> node server-2
※res.writeHeader(상태 코드[, 상태 메시지][, 헤더]) : 응답 헤더를 생성할 때 상태 코드도 같이 기록하는 함수
ex) res.writeHeader(200, {"Content-Type" : "text/plan"})
ch04 - <server-3.js> : 리더블 스트림을 이용해 index.html을 파이프로 연결해서 서빙
-Content-Type: text/html : html, htm 형식
const fs = require("fs");
const http = require("http");
const server = http.createServer((req, res) => {
res.setHeader("Content-Type", "text/html"); //"text/html" 사용
const readStream = fs.createReadStream(__dirname + "/index.html", "utf8"); //리더블 스트림
readStream.pipe(res);
});
server.listen(3000, () => {
console.log("3000 포트에서 서버 실행 중");
});
>> node server-3
'Do it Node.js > EJS BackEnd' 카테고리의 다른 글
9. Node 비동기 처리 (0) | 2024.03.01 |
---|---|
8. 라우팅 (0) | 2024.03.01 |
6. 버퍼, 스트림, 파이프 (0) | 2024.02.28 |
5. fs 모듈 (0) | 2024.02.27 |
4. path 모듈 (0) | 2024.02.25 |