HyperText Transfer Protocol
컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식
요청과 응답
서버에게 request 클라이언트에게 response
stateless
개별통신은 모두 독립이어서 과거의 결과를 보존하지 않는다.
매 통신마다 모든 정보를 담아서 요청을 보내야만한다.
- 요청의 첫번째줄
- http method : 요청이 의도한 액션을 정의
- request target : 요청이 전송되는 목표 url
- http version : http 버전
post / login HTTP/1.1
- 요청의 메타데이터를 담고있는 부분
- Key: Value 값으로 되어있다 (JavaScript의 객체, Python의 딕셔너리 형태라고 보면 된다)
- Host: 요청을 보내는 목표(타겟)의 주소. 즉, 요청을 보내는 웹사이트의 기본 주소가 된다. (ex. www.apple.co.kr)
- User-Agent: 요청을 보내는 클라이언트의 대한 정보 (ex. chrome, firefox, safari)
- Content-Type: 해당 요청이 보내는 메세지 body의 타입 (ex. application/json)
- Content-Length: body 내용의 길이
- Authorization: 회원의 인증/인가를 처리하기 위해 로그인 토큰을 Authroization 에 담는다
headers: { host user-agent content-type content-length }
요청의 실제 내용
body: { username password }
- 웅답의 첫번째줄 상태
- http version : HTTP 버전
- status code : 통신상태코드
- status text : 상태코드 설명
HTTP/1.1 404 Sot found
HTTP/1.1 200 SUCCESS
- Request와 동일
- 요청의 메타데이터를 담고있는 부분
- Key: Value 값으로 되어있다 (JavaScript의 객체, Python의 딕셔너리 형태라고 보면 된다)
- Host: 요청을 보내는 목표(타겟)의 주소. 즉, 요청을 보내는 웹사이트의 기본 주소가 된다. (ex. www.apple.co.kr)
- Server: 응답을 보내는 서버에 대한 정보
- Content-Type: 해당 요청이 보내는 메세지 body의 타입 (ex. application/json)
- Content-Length: body 내용의 길이
- Authorization: 회원의 인증/인가를 처리하기 위해 로그인 토큰을 Authroization 에 담는다
headers: { host server content-type content-length }
응답의 실제 내용
body: { message token }
데이터 받아오기만 할 때
사용
웹페이지에 접속해서 필요한 데이터를 불러올 때 사용
get/shop/bag HTTP 1.1
데이터를 생성/수정할 때
사용
body에 담는 내용이 핵심
ex) 장바구니에 담기
서버에 저장된 특정 데이터 삭제
delete/shop/bag/productId HTTP 1.1
ex) 장바구니에서 삭제