HTTP advanced

katsukichi·2021년 3월 20일
0

CodeStates_IM

목록 보기
30/48

packag.json 을 먼저 생각해보면

npm으로 어떤 특정 모듈을 다운받을때

그 프로젝트의 의존성으로 dev와 dependancy? 로 나눌수있다.

dev는 설치할때 --dev 를 주면 package.json에 devdepandancy로 갈것이며

--save 옵션으로 package.json에 depandancy로 잡아줄수잇다.

HTTP

다시생각해보자. HTTP는 여러 통신종류 (7계층중에 상위구간에서)

데이터를 주고받는 일종의 약속이다.

hyperText transfer protocal ?

하이퍼텍스트는 뭐 html할때의 그 하이퍼텍스트인가 ?

전송 약속 ?

쉽게생각하면 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다.

여기에는 상호간의

연결에서 주고받는 데이터드이 존재한다.

HTTP연결시 주고받는것?

client는 header를 가진다. (브라우저가 직접 삽입해주는 내용들도 포함된다 예를들면, 내가쓰는건 크롬부라우저인 내용이 삽입된다)

추가로 클라이언트가 원하는 데이터형식이 명시적으로 적혀서 들어간다. json타입인지, xml인지, text인지 등등..

서버도 마찬가지로 헤더를 가지고있다.

서버쪽에서 헤더를 보내주면 명세표같은느낌이지않을까생각한다.

거기엔 우리가 내려줄수있는 데이터의 형태와, 승인된 출저(Origin) , 승인된 메서드들, 그리고 프리플라이트의 시간제한.

만약 클라이언트가 서버쪽에 데이터를 보내준다면 body를 가질것이다.

서버가 클라이언트에 데이터를 내려준다면 body안에 들어잇다.

프리플라이트 ? preflight

pre : 미리, 먼저 이런의미의 접두사이다.

flight : 비행

먼저 갔다와보는것이다. 쉽게말해 정찰 (메서드로 분류하면 OPTIONS)

왜?

갔다와보면 서버에서 cors를 풀어놧는지 아닌지 볼수있게된다. (즉 권한이 있는지 먼저 갔다와보는것)

요청할수있음을 프리플라이트에서 알게된다면

이어서 본요청으로 간다. (POST)

그렇게 데이터를 보내면 서버에서 처리해준다.

cors가 거절되어있는 서버라면 프리플라이트에서 거절당하고 본요청을 하지않는다.

서버는 http 요청 결과를 상태코드로 전달한다.

100번 / 데이터성공이였나.
200번 / 성공적
300번 / 리다이렉트
400번 / 클라이언트문제
500번 / 서버문제

profile
front-back / end developer / Let's be an adaptable person

0개의 댓글