HTTP Server - post

김남경·2022년 12월 8일

server

목록 보기
1/7

start

//모듈을 불러오기
const http = require("http");

//서버 만들기
const server = http.createServer((request, response) => {
	response.writeHead(200);
    response.end();
});

//포트 설정하기
server.listen(8080, ()=>{
	console.log("I'm Listening...");
});

head - CORS

//모듈을 불러오기
const http = require("http");

//서버 만들기
const server = http.createServer((request, response) => {
	response.writeHead(200, defaultCorsHeader);
    response.end();
});

//포트 설정하기
server.listen(8080, ()=>{
	console.log("I'm Listening...");
});

//CORS 설정하기
const defaultCorsHeader = {
	"Access-Control-Allow-Origin": "*",
  	"Access-Control-Allow-Methods": "GET, POST, OPTIONS",
    "Access-Control-Allow-Headers": "Content-Type, Accept",
    "Access-Control-Max-Age": 10,
}

body

//모듈을 불러오기
const http = require("http");

//서버 만들기
const server = http.createServer((request, response) => {
  	
  	let body=[];
  
  	request.on('data', (chunk) => {
      	//chunk는 쪼개진 데이터
    	body.push(chunk);
  	}).on('end', () => {
    	body = Buffer.concat(body).toString();
      	//Buffer는 쪼개진 데이터를 모으는 공간
    	response.writeHead(200, defaultCorsHeader);
    	response.end();
  	});

});

//포트 설정하기
server.listen(8080, ()=>{
	console.log("I'm Listening...");
});

//CORS 설정하기
const defaultCorsHeader = {
	"Access-Control-Allow-Origin": "*",
  	"Access-Control-Allow-Methods": "GET, POST, OPTIONS",
    "Access-Control-Allow-Headers": "Content-Type, Accept",
    "Access-Control-Max-Age": 10,
}

✅ 큰 데이터를 잘게 쪼개서 전달하고 잘게 쪼개진 데이터를 받아 합치는 과정이 필요

body -CORS

//모듈을 불러오기
const http = require("http");

//서버 만들기
const server = http.createServer((request, response) => {
  	
  	//CORS 구현
  	if(request.method === "OPTIONS"){
    	response.writeHead(200, defaultCorsHeader);
    	response.end();
    }
  	
  	//CORS 구현
  	if(request.method === "POST" && request.url === "/upper"){
    	let body=[];
  
  		request.on('data', (chunk) => {
      		//chunk는 쪼개진 데이터
    		body.push(chunk);
  		}).on('end', () => {
    		body = Buffer.concat(body).toString().toUpperCase();
      		//Buffer는 쪼개진 데이터를 모으는 공간
    		response.writeHead(200, defaultCorsHeader);
    		response.end(body);
  		});
    }else{
    	response.on('error', (err) => {
        	console.log(err);
        });
    }
  	

});

//포트 설정하기
server.listen(8080, ()=>{
	console.log("I'm Listening...");
});

//CORS 설정하기
const defaultCorsHeader = {
	"Access-Control-Allow-Origin": "*",
  	"Access-Control-Allow-Methods": "GET, POST, OPTIONS",
    "Access-Control-Allow-Headers": "Content-Type, Accept",
    "Access-Control-Max-Age": 10,
}

참고

HTTP 트랜잭션 해부
Node js - 초간단 Node Server 구축 (http module, chunk, buffer)
제로부터 시작하는 Node.js - 7. http 모듈 2편 (Cookie, Request, Page)
제로부터 시작하는 Node.js - 6. http 모듈 1편 (Http, Server, Request, Response)

profile
기본에 충실하며 앞으로 발전하는

0개의 댓글