서버와 클라이언트가 통신할때 사용하는 약속
클라이언트이 요청 -> 서버의 응답
통신의 세부사항을 신경쓰지 않음 (추상화)
응답을 어떻게 처리하느냐 만 판단
Method : get, post, pt delete 등 클라이언트의 의도를 나타냄 , 상황마다 써야 하는게 정해져 있음
Path : 서버에 있는 어떤 리소스를 식별하는 경로 (리소스 : 식별 가능하 아무것 ex: HTML 문서, 이미지 등)
headers: 요청과 응답에 모두 존재, [여러개의 이름: 값] 형태 Obj 용도가 정해진 헤더가 많다. -> HTTP를 잘안다 = 헤더의 역할을 잘 안다.
ex) 헤더 부분
content-type: application/json -> 이 요청의 body를 JSON 형식으로 해석해라
body : 데이터 , 요청/응답에 있을수도 없을수도 있음 , HTML , js, json , 바이너리등 아무거나 가능
status : status code & status Message 200 => 요청이 잘처리됨 code : 200 message: ok 수십개의 코드가 정의되어 있음
headers : 요청과 같음
body : 요청 부분 과 같음
Method, headers , status code
사용 상황이 명확하게 정의되어 있다. (rest = 최대한 잘 지키자) ;
실수로/ 귀찮아서 등 (get으로만 써도 무방하다고 생각) 등 으로 잘 지켜지지 않을때가 있다.
HTTP를 기반으로 한 다른 프로토콜을 사용하면서 잘 지켜지지 않을때가 있다.
HTTP 요청을 받아서 적절한 응답을 해주는 프로그램
웹 브라우저
주소창에 주소를 입력
엔터 입력
주소로 이동
1. 주소창에 HTTP 요청을 보낸다.
2. HTTP Response 를 받는다. (header : content-Type:text/html body:<h1>hi </h1>)
3. body에 html 파일이 온것을 그리고 script 태그에 js 코드를 담아서 해석한다.
<만약 <script src=‘script.js></script> 로 js 파일이 따로 있을 경우 get으로 요청해서
결과를 받는다. >
4. 화면을 그린다.