역할:
컴퓨터끼리의 소통을 위한 통신규약
특징:
1. request / response (요청 / 응답) 으로 이루어진다.
클라이언트 -> 요청 -> 서버
클라이언트 <- 응답 <- 서버
2. stateless
- 개별통신은 모두 독립이기 떄문에 과거의 통신결과 (상태)를 보존하지 않는다
- 매 통신마다 사전에 필요한 모든 정보를 담아서 요청을 보내야한다
*stateful : 결과/상태가 모두 저장되어 요청이 많을 경우 과부하가 올 수 있다.
'요청' 메세지구조
▪️ start line
- 요청의 첫번째 줄
- HTTP method: 요청이 의도한 액션을 정의, 주로 GET, POST, DELETE가 많이 쓰임
- Request target : 요청이 전송되는 목표 URL
- HTTP version : HTTP 버전
예 ) POST / login HTTP/1.1
- 요청의 메타데이터를 담고 있는 부분
: {key:value}의 형태
+ Authorization: 회원의 인증/인가를 처리하기 위해 로그인 토큰을 Authroization 에 담는다
▪️ Body
- 요청의 실제 내용
: 요청 메소드에 따라 존재하지 않을수도 있음
'응답' 메세지구조
▪️ status line
- 요청의 첫번째 줄
: 상태를 나타냄
- HTP version : HTTP 버전
- Status Code : 응답 상태 코드
- Status Text : 응답의 상태를 간략히 설명하는 텍스트
예 ) HTTP/1.1 404 Not Found
HTTP 1.1 버전으로 응답하고 있는데 에러가 있어 해당 코드와 상태메세지를 보냄.
▪️ Headers & Body
- 요청과 동일
▶️ Body 예시