대규모의 웹서브시가 늘어나게 되면서, 외부호출에 대한 니즈가 점점 늘어나게 되었다.
이때 조금더 안전하게 서버간의 교차통신을 하게끔 하기 위한 정책?
HTTP헤더
를 추가함으로써 동작함. 순서!
1.브라우저가 OPTIONS메소드로 프리플라이트하고,
2.서버의 허가가 떨어지면 실제 요청을 하게 된다 (POST등)
Access-Control-Origin: *
여기서 *표는 모든 도메인을 허용한다는 의미.
Access-Control-Origin: http://foo.example
여기서는 foo.example에 대해서만 허용해준다는 의미.
브라우저에서 크로스도메인 요청은 기본적으로 제한되어 있음.
- 모든 도메인 (*) 허용
- 메소드 GET/POST/PUT/DELETE/OPTIONS
- 헤더에는 Content-type, accept 만 사용가능
- preflight request는 10초까지만 허용 가능함.
writeHead(200, - );
response.end('-');
let body = [];
request.on('data', (chunk) => {
body.push(chunk);
}).on('end', () => {
body = Buffer.concat(body).toString();
// 여기서 `body`에 전체 요청 바디가 문자열로 담겨있습니다.
});
buffer
에 저장
해서스트림
이 등장 chunk
이다. 'data'이벤트를 설정하여 chunk가 들어오면 data라는 배열에 하나씩 Push
data는 스트림에서 데이터 청크의 소유권을 소비자에게 양도할 때마다 이벤트가 발생합니다??
'end' 이벤트 발생을 통해 읽는 것이 끝나면, concat을 통해 하나로 합쳐
end이벤트는 스트림에 더이상 소비할 데이터가 없을때! 즉, 마지막에 작동시킴
data와 end이벤트의 사용법, buffer의 적용법은 더 공부를 해보아야 할듯하다... 어려웡