0908 TIL Web Server기초

냐하호후·2021년 9월 8일
0

TIL

목록 보기
40/101

HTTP

HTTP 요청/응답을 브라우저를 통해 확인할 수 있고, 해당 내용을 읽을 수 있다.
HTTP 다양한 요청 방식과, 응답 코드에 대해 이해할 수 있다.

response객체의 메소드

메소드설명
writeHead(statusCode,object)응답 헤더 작성
end([data],[encoding])응답 본문 작성

res.end는 응답을 종료하는 메서드이다.
만약 인자가 있다면 그 데이터도 클라이언트로 보내고 응답을 종료한다.

Stream

한 지점에서 다른 지점으로 이동하는 일련의 데이터

Buffer

반면에, 한 작업이 데이터를 처리하는 시간이 데이터가 도착하는 시간보다 더 빠르다면, 먼저 도착한 데이터는 처리되기 전에 어느정도의 데이터량이 쌓일때까지 기다려야 합니다.
바로 그 기다리는 영역이 buffer 입니다! 컴퓨터에서 일반적으로 RAM이라고 불리는 영역에서 streaming 중에 데이터가 일시적으로 모이고, 기다리며 결국에는 데이터가 처리되기위해 내보내어 집니다.

CORS

Simple Request

간단한 request로 preflight request를 보내지 않아도 되는 요청을 말한다.

조건 1. GET, HEAD, POST 중 하나의 HTTP 메소드에 속해야 한다

조건 2. 요청 헤더에 User Agent 에서 자동으로 세팅한 HEAD 만으로 이뤄져 있어야 한다.

  • Accept

  • Accept-language

  • Content-langugae
    -Content-type

    조건 3. Content-type 은 다음 중 하나여야만 한다.

  • application/x-www-form-urlencoded

  • multipart/form-data

  • text/plain

그 외

res.end가 실행되면 끝난다. res.end가 두개 이상이면 에러가 난다.

서버 객체에 이벤트를 연결하는 방법은 on() 메서드를 이용한다.

on. ‘data’에서는 데이터가 조각으로 들어와 여러번 실행된다. on. ‘end’는 데이터가 모두 들어오면 단 한번 실행된다.

데이터는 저장, 불러오기가 가능해야한다. => (일단은) JS의 object나 array에 저장할 수 있다. (=> 이 경우, 서버를 끄면 사라진다. => node.js의 filesystem을 통해서 서버를 꺼도 보존할 수 있다.(db를 통해서 나중에 배울내용))

HTTP 요청이 서버에 오면, node가 request와 response 객체를 전달하며 요청 핸들러 함수를 호출한다. (이 요청을 실제로 처리하기 위해서는 listen메서드가 server객체에서 호출되어야 한다.)

노드몬 오류가 났을 때

nodemon app crashed - waiting for file changes before starting
이 오류가 자꾸 떴었다. 이미 서버가 켜져있는데 또 키려고해서 일어난 오류였다.

pkill -f node

이걸 터미널에 치면 서버가 꺼져서 다시 npm start를했을 때 다시 서버를 킬 수 있다.

느낀점

나는 정말 문서를 꼼꼼히 안읽고 쓱 읽고 넘기는 것 같다. 한줄한줄 꼼꼼히 읽어야겠다. 서버에 대해서 처음 배워서 너무 낯설었고 당황해하느라 코드와 설명이 눈에 전혀 들어오지 않았다. 이번주에 많이 느낀다. 코딩할땐 마인드가 정말 중요하다. 낯선걸 보면 당황해하고 조급해하는 나의 단점을 고쳐야한다는 필요성을 강하게 느낀다.

참고

트랜젝션 해부
스프린트1
스프린트2
buffer란 뭐지

profile
DONE is better than PERFECT

0개의 댓글