⚠️주의: 이 문서는 작성자의 개인 공부 목적으로 쓰여진 문서이므로, 작성자 본인만 알아듣기 편하게 작성되어 있을 수 있음.
- HTTP는 HyperText Transfer Protocol
○ HTML과 같은 문서를 전송하기 위한 프로토콜임
○ 웹 브라우저와 웹 서버의 소통을 위해 디자인 된 프로토콜
○ 클라이언트-서버 모델과 HTTP 프로토콜
§ 클라이언트가 HTTP Messages 양식에 맞춰 요청을 보낸다(Requests) --> 서버는 HTTP Messages 양식에 맞춰 응답한다(Responses).
- HTTP Messages의 구조
○ 리퀘스트와 리스폰스는 다음과 같은 유사한 구조를 지님.
§ Start line: 요청이나 응답의 상태를 나타내며 항상 첫 줄에 위치함. 응답에서는 status line이라고 부름. 리퀘스트에서는 HTTP 메소드가 포함
§ HTTP headers: 요청을 지정하거나, 메시지에 포함된 본문을 설명하는 헤더의 집합
□ 클라이언트(리퀘스트): 이거 내가 필요한 정보 속성이니까 찾아 주셈
□ 서버: ㅇㅋ 내가 주는 정보 속성이다
§ Body: 요청과 관련된 데이터나 응답과 관련된 데이터/문서 포함. 요청과 응답의 유형에 따라 선택적으로 사용.
○ 응답의 head
§ Start line / HTTP headers를 포함
○ 응답의 body
§ Payload
- Stateless
○ HTTP의 가장 큰 특징이며, 상태를 가지지 않는다는 뜻
○ 통신 과정에서 HTTP가 클라이언트나 서버 상태 확인 안함.
§ 클라이언트에서 발생한 모든 상태를 추적 안함. HTTP는 통신 규약일 뿐, 상태를 저장하지 않기 때문임.
§ HTTP 대신 쿠키, 세션 API등이 상태 저장(추적)의 역할을 함