http 메시지 형식은 문서 형식
1. start line
2. headers
3. body
세가지 형식? 부분?
을 이용해서 데이터 통신을 할 수 있다
응답 성공 : 상태 코드 200번대
응답은 성공했으나 오류 발견 : 상태 코드 300번대
응답 실패 : 상태 코드 400번대
http 형식을 잘 알고있으면 외부 라이브러리 없이도 데이터 통신이 가능하다
요청과 응답은 문서 형식으로 보내고 받게된다
//////// 동기식 처리 ////////
http 프로토콜은 동기식 처리
-> 요청 1번에는 응답도 1번
-> 응답이 올 때 까지 다음 요청을 할 수 없음
요청과 응답의 첫번째 줄이 start line
Requests 문서에 의해 start line(첫 번째 줄)을 읽어 요청한 값을 가져오는..?
start line에는 요청 방식, url http 버전이 들어있다
-> 해당 요청에 맞는 요청과 응답 문서의 메시지를 교환받는..?
-> start line에서 url을 통해 get 요청의 데이터를 전달
headers는 두번째 줄부터
host 주소 , 브라우저 정보, 운영체제 정보 등이 들어있다
Content-Type 이 중요하다
-> content type에 따라 encoding 형식이 다른것 같음
-> post 요청은 application/x-www-form-urlencoded : queryString 형식 ex) id=swk&pw=1234
headers와 body 사이에는 하나의 빈 칸 존재,
body에는 post로 전달하는 값이 들어있다
get은 url로 데이터를 주고 받기 때문에 body 영역 없음
브라우저는 응답으로 받은 문서를 해석해서
body 영역을 화면에 띄워준다
요청은 html을 통해 url이 변경되고 해당 url에 요청
응답 메시지는 브라우저가 읽는다
응답 값은
요청방식 OK 응답 내용 으로 구성됨
ex) POST OK 내용
post의 내용도 & 구분자를 이용하여 body 영역에 문자로 전달됨 (text/html, character set=utf8 형식)
ex) html 형식 -> html을 브라우저가 읽어 화면을 구성한다
node.js 의 express 는 body를 읽는 기능이 없기 때문에
미들웨어인 body-parser를 사용하여 body 내의 정보를 읽는다
nunjucks 같은 경우 요청 전에 적용되고
body-parser는 응답을 받을 때 적용됨
nunjucks 요청.렌더 에서 넌적스 구문 오류 시 화면 전체를 출력하지 못함
///// 비동기식 처리 /////
동기 -> 요청에 대한 응답을 한번에 전달 받는다
비동기 -> 페이지 이동 없이 필요한 정보에 대한 응답만을 전달 가능
(이미 전달받은 것을 또 전달하지 않게, 페이지 이동 없이 요청을 할 수 있다)
요청에 대한 메시지는 동기식과 크게 다르지 않다
js 페이지에서 start line에 해당하는 것만 읽어서 응답을 만든다
fetch then catch
axios
async await 등으로 비동기식 처리 가능
-> Promise Object 로 값을 반환
/////////////////////////////////////
'Content-Type' : 'application/json'
-> api 통신은 json으로 많이 한다
ex)
body:'{"userid":"adsda","userpw":"sada"}'
body:JSON.stringify({"userid":"adsda","userpw":"sada"})
jwt -> 토큰 인증 방식
web socket -> 통신 프로토콜
'Back_end > node.js' 카테고리의 다른 글
node.js) 토큰기반인증과 토큰의 생성(JWT), 암호화, 2진법 (0) | 2021.05.27 |
---|---|
node.js) 웹 api (0) | 2021.05.26 |
node.js) data 전달 - body, headers (0) | 2021.05.24 |
node.js) 비구조 할당 (0) | 2021.05.24 |
node.js) global (window) (0) | 2021.05.22 |
댓글